如何使用带参数的对象作为类成员

leon leon 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
看如下示例:
class CStudent
{
int m_age;
CStudent(int age = 16)
{
m_age = age;
}
}
class CClass
{
CClass()
{

}
private:
CStudent m_student1;
CStudent m_student2(10); // 本意定义一个age为10的对象
// 错误error C2059: syntax error:’constant’
}

如上例,要想在类CClass中使用一个带参数的对象m_student2,以上的定义方式是错误的。
语法上说,编译器把这个CStudent m_student2(10);当成了函数声明,报告错误:error C2059: syntax error:’constant’
从类定义的角度来看,定义成员变量时并不会实例化该变量,没有内存分配,但是CStudent m_student2(10);这种写法也意味着实例化一个对象,所以是不允许的。那么,这也意味着直接声明一个带参数的成员变量是不可能的,不知道这种理解对不对?
希望有高手指点~~

...全文
评论 11
收藏 已收藏
分享
返回顶部
leon
C++ 语言 65,214 成员 250,514 内容