首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
C/C++
C++ 语言
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结帖去...
管理菜单
页面风格切换
标准风格
老版本论坛
类定义中,不是不分配空间和初始化么?看着个例子
[已结帖,结帖人:jiwei325]
加为好友
发送私信
在线聊天
jiwei325
等级:
可用分等级:
贫农
总技术分:
0
总技术分排名:
322578
结帖率:
100.00%
发表于:
2008-08-23 15:47:19
楼主
#include <iostream.h>
#include <string.h>
class StudentID
{
public:
StudentID(int id)
{
value=id;
cout < <"assigning student id:" < <value < <endl;
}
~ StudentID()
{
cout < <"destructing id" < <value < <endl;
}
protected:
int value;
}
;
class Student
{
public:
Student(char *pname,int ssID=0):id(ssID)//为什么要对ssID初始化,类定义不是不分配空间和初始化么
{
cout < <"constructing student" < <pname < <endl ;
strncpy(name,pname,sizeof(name));
name[sizeof(name)-1]='\0';
}
protected :
char name[20] ;
StudentID id;
}
;
void main()
{
Student s("randy",9818);
Student t("Jenny");
}
问题点数:
20
回复次数:
15
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
chlaws
潇洒哥说-你是石家-
等级:
可用分等级:
富农
总技术分:
6395
总技术分排名:
3407
发表于:
2008-08-23 15:54:39
1
楼 得分:
5
类定义中,不是不分配空间和初始化么?
>
怎么就不能分配和初始化了?
对私有数据成员初始化是很正常的事
分配空间更正常了,例有一char* 成员,在初始化时根据指定大小分配空间
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
xqls_xqls
小桥流水
等级:
可用分等级:
中农
总技术分:
836
总技术分排名:
22718
发表于:
2008-08-23 16:01:12
2
楼 得分:
0
调用类Student的构造函数构造对象id,对角id.value = ssID
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
hmsuccess
等级:
可用分等级:
富农
总技术分:
5705
总技术分排名:
3921
发表于:
2008-08-23 16:03:20
3
楼 得分:
0
char name[20];//分配空间
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
hmsuccess
等级:
可用分等级:
富农
总技术分:
5705
总技术分排名:
3921
发表于:
2008-08-23 16:08:35
4
楼 得分:
5
初始化更正常了,如
C/C++ code
class
Test {
private
:
static
const
int
numT
=
100
;
int
array[numT]; };
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
hmsuccess
等级:
可用分等级:
富农
总技术分:
5705
总技术分排名:
3921
发表于:
2008-08-23 16:13:56
5
楼 得分:
0
Student(char *pname,int ssID=0):id(ssID)//为什么要对ssID初始化,类定义不是不分配空间和初始化么?
采用
成员初值列
是保证对象id使用之前已初始化
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
richbirdandy
阿2
等级:
可用分等级:
中农
总技术分:
2580
总技术分排名:
8406
发表于:
2008-08-23 18:37:16
6
楼 得分:
0
google 初始化成员列表
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
yshuise
等级:
可用分等级:
中农
总技术分:
1817
总技术分排名:
12329
发表于:
2008-08-23 20:33:10
7
楼 得分:
0
这只是类,只是一形式,当它成为一个对象的时候才成为事实。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zhongyunde
等级:
可用分等级:
富农
总技术分:
83
总技术分排名:
101325
发表于:
2008-08-23 20:37:54
8
楼 得分:
0
分配空间 在创建对象的时候才需要
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
lw1a2
一刀
等级:
可用分等级:
中农
总技术分:
18160
总技术分排名:
706
发表于:
2008-08-23 20:42:19
9
楼 得分:
5
Student s("randy",9818); //这时候才初始化
Student t("Jenny"); //这时候才初始化
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
kong_ling
kong_ling
等级:
可用分等级:
贫农
总技术分:
578
总技术分排名:
30166
发表于:
2008-08-23 20:44:33
10
楼 得分:
0
引用楼主 jiwei325 的帖子:
Student(char *pname,int ssID=0):id(ssID)//为什么要对ssID初始化,类定义不是不分配空间和初始化么…
用成员初始化列表来初始化ssID不是发生在类定义时啊。定义Student类对象时才会调用Student构造函数,才对ssID进行的初始化。
类定义时只是定义了这个函数,并没有调用它
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
yshuise
等级:
可用分等级:
中农
总技术分:
1817
总技术分排名:
12329
发表于:
2008-08-23 20:45:15
11
楼 得分:
5
C/C++ code
class
Test {
private
:
static
const
int
numT
=
100
;
int
array[numT]; };
静态变量不属于对象。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
kong_ling
kong_ling
等级:
可用分等级:
贫农
总技术分:
578
总技术分排名:
30166
发表于:
2008-08-23 20:46:52
12
楼 得分:
0
囧,被lz忽悠了,是对Student成员变量id初始化,不是对ssID初始化吧~~
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
hmsuccess
等级:
可用分等级:
富农
总技术分:
5705
总技术分排名:
3921
发表于:
2008-08-23 22:10:21
13
楼 得分:
0
引用 11 楼 yshuise 的回复:
C/C++ codeclass Test
{
private:
static const int numT = 100;
int array[numT];
};
静态变量不属于对象。
是的,静态变量属于类
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
budTang
等级:
可用分等级:
贫农
总技术分:
639
总技术分排名:
27961
发表于:
2008-08-23 22:20:20
14
楼 得分:
0
它这不只是提供了对类成员初始化的方式吗?并没有实际用某个值去初始化阿
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
yuhaozx
等级:
可用分等级:
贫农
总技术分:
397
总技术分排名:
39578
发表于:
2008-08-23 23:00:13
15
楼 得分:
0
1、
类定义中可以对私有数据成员初始化;
可以分配空间;int iTmp[10]
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结帖去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友