C++:构造函数在类内声明,类外定义 为什么无法运行呢?
classA(){inta,b;public:A(intparam1,intparam2);}A::A(intparam1,intparam2):a(param1),b(...
class A() {
int a,b;
public:
A(int param1, int param2);
}
A::A(int param1, int param2) :
a(param1), b(param2) {
}
int main() {
A object(1, 2);
cout<<object.a<<endl;
cout<<object.b<<endl;
return 0;
} 展开
int a,b;
public:
A(int param1, int param2);
}
A::A(int param1, int param2) :
a(param1), b(param2) {
}
int main() {
A object(1, 2);
cout<<object.a<<endl;
cout<<object.b<<endl;
return 0;
} 展开
展开全部
你的 int a,b; 是私有的 (默认不加public时)
所以main里访问不了
你可以改成:
class A() {
public:
int a,b; //放在public里
A(int param1, int param2);
}
或者:
class A() {
int a,b;
public:
A(int param1, int param2);
int GetA(){return a;};
int GetB(){return b;};
}
然后在调用
cout<<object.GetA()<<endl;
cout<<object.GetB()<<endl;
所以main里访问不了
你可以改成:
class A() {
public:
int a,b; //放在public里
A(int param1, int param2);
}
或者:
class A() {
int a,b;
public:
A(int param1, int param2);
int GetA(){return a;};
int GetB(){return b;};
}
然后在调用
cout<<object.GetA()<<endl;
cout<<object.GetB()<<endl;
2012-11-14
展开全部
你的程序由2个错误:
class A() { //需要删掉(),即class A{
int a,b;
public:
A(int param1, int param2);
} //需要添加一个分号 ;
A::A(int param1, int param2):a(param1), b(param2) {}
int main() {
A object(1, 2);
cout<<object.a<<endl;
cout<<object.b<<endl;
return 0;
}
class A() { //需要删掉(),即class A{
int a,b;
public:
A(int param1, int param2);
} //需要添加一个分号 ;
A::A(int param1, int param2):a(param1), b(param2) {}
int main() {
A object(1, 2);
cout<<object.a<<endl;
cout<<object.b<<endl;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <iostream.h>
class CA
{
public:
int a,b;
public:
CA(int param1, int param2);
CA();
~CA();
}; //你的类定义没有;结尾
CA::CA(int param1, int param2) :a(param1),b(param2)
{
}
CA::CA()
{
}
CA::~CA()
{
}
int main() {
CA object(1, 2);
cout<<object.a<<endl;
cout<<object.b<<endl;
return 0;
}
// 输出结果
1
2
Press any key to continue
class CA
{
public:
int a,b;
public:
CA(int param1, int param2);
CA();
~CA();
}; //你的类定义没有;结尾
CA::CA(int param1, int param2) :a(param1),b(param2)
{
}
CA::CA()
{
}
CA::~CA()
{
}
int main() {
CA object(1, 2);
cout<<object.a<<endl;
cout<<object.b<<endl;
return 0;
}
// 输出结果
1
2
Press any key to continue
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是无法运行,还是无法编译?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询