找回密码
 注册
查看: 1951|回复: 17

c++声明中能否定义一个数组,如果能应怎样去初始化

[复制链接]
发表于 2005-7-5 17:00:30 | 显示全部楼层 |阅读模式
class A
{
   public:
             A(){} //这个初始化函数应怎样实现?给 a[3] 负值
             A(){}
   private:
               int a[3];
}
 楼主| 发表于 2005-7-5 17:32:11 | 显示全部楼层
a[3]中要用来存储整数 如 1,2,3,.....
回复

使用道具 举报

 楼主| 发表于 2005-7-5 17:33:26 | 显示全部楼层
是不是我问题又没说明白?
回复

使用道具 举报

发表于 2005-7-5 17:43:23 | 显示全部楼层
a[3]超范围了!
回复

使用道具 举报

 楼主| 发表于 2005-7-5 17:54:23 | 显示全部楼层
[quote:ecd027dbda="youxiazhu"]a[3]超范围了![/quote]

a[3]要怎样负值哪?
回复

使用道具 举报

发表于 2005-7-6 07:30:33 | 显示全部楼层
# include<iostream.h>

class A
{
                int a[3];
                int n;
public:
                A(int i)
                {
                        a[2]=i;  //如果硬要向a[3]中赋值,也许这个值会赋给n
                }
                void pr()
                {
                        cout<<a[2]<<endl;
                }
};

void main()
{
        A myA(20);
        myA.pr();
}
回复

使用道具 举报

 楼主| 发表于 2005-7-6 13:08:06 | 显示全部楼层
我的意思是想问:列如如下这个Poker类
class Poker
{
        public:
               
                Poker ( char * i_name)
                {
                        strcpy(Poker::name,i_name);
                }
                Poker (){}

                void ShowData();//显示牌的数据
                void SetName (const char * i_name)
                {
                        strcpy(name, i_name);
                }
                const char * GetName (){return name ;};
                char * GetPoker();//发牌
        private:
                char name[40];//poker name


};


要怎样初始化类A 中的 数组 int a[3],像类Poker 的初始化为       
        Poker ( char * i_name)
        {
                        strcpy(Poker::name,i_name);
        }
        Poker (){}
回复

使用道具 举报

 楼主| 发表于 2005-7-6 14:20:22 | 显示全部楼层
class Status
{
        public:
                Status(int i):c_num(i)
                {
                        int c;
                        for(c=0;c<=i;c++)
                        {
                                status[c] = 1;
                                client_name[c] = "client1";
                        }
                }
                //Status(){}
                int GetStatus_status(int i);
                char * Getstatus_client_name(int i);
                void SetStatus(int i, int c_status, char * name);
                void ShowStatus();
        private:
                int c_num;//client number
                int   status[3];
                char  * client_name[3];

};
回复

使用道具 举报

发表于 2005-7-6 14:39:57 | 显示全部楼层
把我弄糊涂了,上面不是挺好吗?就是如果i>=3时,估计会有问题。
回复

使用道具 举报

 楼主| 发表于 2005-7-6 14:49:37 | 显示全部楼层
[quote:63e0ffda02="youxiazhu"]把我弄糊涂了,上面不是挺好吗?就是如果i>=3时,估计会有问题。[/quote]

还是我没说明白,你是不是以为我,只想给a[3]负值?
不过谢谢大家的帮忙
回复

使用道具 举报

发表于 2005-7-6 15:50:57 | 显示全部楼层
你是不是想给 a这个数组里的每个元素副职?
回复

使用道具 举报

 楼主| 发表于 2005-7-6 16:08:38 | 显示全部楼层
是啊
回复

使用道具 举报

发表于 2005-7-6 16:24:59 | 显示全部楼层
我也想到了 如果生成一个类的变量的数组 怎么样给每个变量调用非默认的构造函数呢?
回复

使用道具 举报

 楼主| 发表于 2005-7-6 16:30:16 | 显示全部楼层
[quote:8589e96c49="boyxsh"]class Status
{
        public:
                Status(int i):c_num(i)
                {
                        int c;
                        for(c=0;c<=i;c++)
                        {
                                status[c] = 1;
                                client_name[c] = "client1";
                        }
                }
                //Status(){}
                int GetStatus_status(int i);
                char * Getstatus_client_name(int i);
                void SetStatus(int i, int c_status, char * name);
                void ShowStatus();
        private:
                int c_num;//client number
                int   status[3];
                char  * client_name[3];

};[/quote]


看看我的解决办法行不行?
回复

使用道具 举报

发表于 2005-7-7 07:29:07 | 显示全部楼层
同志们注意错别字啊,“赋值”?“副职”?“负值”? 关键的地方啊!

反正楼主的意思我是不明白,帮顶一下吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-7-24 00:03 , Processed in 0.067163 second(s), 16 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表