c++的继承构造函数怎么写?

BLUE__OCEAN 2008-10-24 04:41:33
class Base
{
public:
Base(int x):nVar(x){}
~Base()
{
}
void GetVar(void)
{
cout << nVar << endl;
}
private:
int nVar;
}

class Child:public Base
{
构造函数改怎么写?
};

高手指点下,谢谢
...全文
1169 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
太乙 2008-10-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 BLUE__OCEAN 的回复:]
#include <iostream>
using namespace std;

class Base
{
public:
Base(int x):nVar(x){}
~Base()
{
}
void GetVar(void)
{
cout < < nVar < < endl;
}
private:
int nVar;

};

class Child:public Base
{
Child(int a):Base(a),tt(b)
{
}
~Child()
{
}
private:
int tt;
};

int main(void)
{
Child temp(2,1);
temp.GetVar();
return 0;
}
但…
[/Quote]



#include <iostream>
using namespace std;

class Base
{
public:
Base(int x):nVar(x){}
~Base()
{
}
void GetVar(void)
{
cout << nVar << endl;
}
private:
int nVar;

};

class Child:public Base
{
public:
Child(int a,int b):Base(a),tt(b)
{
}
~Child()
{
}
private:
int tt;
};

int main(void)
{
Child temp(2,1);
temp.GetVar();
return 0;
}


BLUE__OCEAN 2008-10-24
  • 打赏
  • 举报
回复
error C2248: 'Child::Child' : cannot access private member declared in class 'Child'
报错!
不知道是怎么回事了。
hhyttppd 2008-10-24
  • 打赏
  • 举报
回复
,int b是不是LZ后来加的,搞得我还以为自己年老眼花。。。。
hhyttppd 2008-10-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hhyttppd 的回复:]
tt(b)
b从天而降?
[/Quote]

不对,细细看了下:
好像构造函数隐藏了。
public:
Child(int a,int b):Base(a),tt(b)
{
}
xuhb95083023 2008-10-24
  • 打赏
  • 举报
回复
//你的b从哪里来的,少了

#include <iostream>
using namespace std;

class Base
{
public:
Base(int x):nVar(x){}
~Base()
{
}
void GetVar(void)
{
cout << nVar << endl;
}
private:
int nVar;

};

class Child:public Base
{
public:
Child(int a, int b):Base(a),tt(b)
{
}
~Child()
{
}
private:
int tt;
};

int main(void)
{
Child temp(2,1);
temp.GetVar();
return 0;
}
hhyttppd 2008-10-24
  • 打赏
  • 举报
回复
tt(b)
b从天而降?
BLUE__OCEAN 2008-10-24
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;

class Base
{
public:
Base(int x):nVar(x){}
~Base()
{
}
void GetVar(void)
{
cout < < nVar < < endl;
}
private:
int nVar;

};

class Child:public Base
{
Child(int a,int b):Base(a),tt(b)
{
}
~Child()
{
}
private:
int tt;
};

int main(void)
{
Child temp(2,1);
temp.GetVar();
return 0;
}
但我这样写程序报错呢?
BLUE__OCEAN 2008-10-24
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;

class Base
{
public:
Base(int x):nVar(x){}
~Base()
{
}
void GetVar(void)
{
cout << nVar << endl;
}
private:
int nVar;

};

class Child:public Base
{
Child(int a):Base(a),tt(b)
{
}
~Child()
{
}
private:
int tt;
};

int main(void)
{
Child temp(2,1);
temp.GetVar();
return 0;
}
但我这样写程序报错呢?
maplele20 2008-10-24
  • 打赏
  • 举报
回复
[code=c/c++]
class Child : public Base
{
public:
Child(int x)
: Base(x)
{}
}
[/code]
xuhb95083023 2008-10-24
  • 打赏
  • 举报
回复
class Child:public Base
{
public:
Child(int nVar):Base(nVar)
{}

};

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧