| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 497 人关注过本帖
标题:一道关于私有成员定义求解
只看楼主 加入收藏
ppvae
Rank: 1
等 级:新手上路
帖 子:25
专家分:2
注 册:2014-1-18
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:5 
一道关于私有成员定义求解
# include <iostream.h>
# include <string.h>

class CRect
{
private:
    char *color;
    int  x_coordinate;
    int  y_coordinate;
    int length;
    int width;

public:
    CRect(char color1[], int x_coordinate1, int y_coordinate1, int length1, int width1);
    void SetColor(char *color1);
    void SetSize(int length1, int width1);
    void Move(int x_coordinate1, int y_coordinate1);
    void Draw();
};

int main(void)
{
    CRect A("blue",30,40,20,100);
    A.Draw();
    //A.SetColor("yellow");
    A.SetSize(100,50);
    A.Move(30,20);
    A.Draw();

    return 0;
}
CRect :: CRect (char color1[], int x_coordinate1, int y_coordinate1, int length1, int width1)
{
        strcpy(color,color1);
        x_coordinate = x_coordinate1;
        y_coordinate = y_coordinate1;
        length = length1;
        width = width1;
}
void CRect :: SetColor(char *color1)
{
    strcpy(color,color1);
}
void CRect :: SetSize(int length1, int width1)
{
    length = length1;
    width = width1;
}
void CRect ::  Move(int x_coordinate1, int y_coordinate1)
{

    x_coordinate = x_coordinate1;
    y_coordinate = y_coordinate1;
}
void CRect :: Draw()
{
    cout<<"颜色为:"<<color<<endl;
    cout<<"长度为:"<<length<<endl;
    cout<<"宽度为:"<<width<<endl;
    cout<<"坐标为:"<<x_coordinate<<" "<<y_coordinate<<endl;
}


为什么私有成员不能定义为 char *color这样程序就自己停止运行了 而char color{10]这样就可以呢
搜索更多相关主题的帖子: private include public color 
2014-09-15 22:43
stop1204
Rank: 9Rank: 9Rank: 9
来 自:福建省
等 级:贵宾
威 望:22
帖 子:295
专家分:1151
注 册:2013-9-8
收藏
得分:7 
字符指针. 加const

const char *xxx

hl928452957@gmail点com

2014-09-16 03:02
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:7 
回复 楼主 ppvae
i think you need to allocate memory space for char * color.
char * color=new char[10];
add this statement and try again. Maybe things would be changed.

想抽苏烟了。
2014-09-16 03:38
ppvae
Rank: 1
等 级:新手上路
帖 子:25
专家分:2
注 册:2014-1-18
收藏
得分:0 
回复 3 楼 fl8962
good
2014-09-17 21:37
zerolu
Rank: 1
等 级:新手上路
帖 子:20
专家分:9
注 册:2013-10-31
收藏
得分:7 
你要知道strcpy这个函数的要求,第一个参数也就是要复制进去的参数必须是数组不能只是个指针。
2014-09-18 03:07
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:0 
回复 5 楼 zerolu
数组是什么?指针是什么?你确定strcpy 不能用指针?同学可以分配内存呀。

想抽苏烟了。
2014-09-19 07:37
快速回复:一道关于私有成员定义求解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041262 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved