标题:一道关于私有成员定义求解
只看楼主
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-436129-1-1.html




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

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