#include
class A
{
private:
int i;
int j;
public:
// int i; 重复定义i
A(); //构造函数无返回类型
int geti();
int getj();
};
A::A()
{
i=10;
j=20;
}
int A::geti() //把void换成int
{
return i; //有返回值的函数返回类型不能是void,返回什么类型就写什么类型
}
int A::getj() //把void换成int
{
return j;
}
void main()
{
A a;
int i,j;
i=a.geti(); //函数调用有括号
j=a.getj(); //函数调用有括号
cout<}
正确的代码:
#include
using namespace std; //新的C++标准库已经摒弃了.h的库。不过在老编译器上#include
class A
{
private:
int i;
int j;
public:
//int i; // 重复定义i
A(); // 构造函数没有返回类型
int geti(); //geti和getj的返回类型是int
int getj();
};
A::A() // 构造函数没有返回类型
{
i=10;
j=20;
}
int A::geti() // geti的返回类型是int
{
return i;
}
int A::getj() // getj的返回类型是int
{
return j;
}
void main()
{
A a;
int i,j;
i=a.geti(); // 成员函数调用必须有参数,即使是空参数也要有()
j=a.getj();
cout<}
#include
class A
{
private:
int i;
int j;
public:
int i; //重复定义了,只要删掉就可以了
void A(); //默认构造函数定不用你来定义。。删掉
void geti();
void getj();
};
void A::A() //构造函数没有返回类型,不是返回void。
//把void删掉
{
i=10; //这个定义操作是不允许的,你要知道:
j=20; //调用构造函数的时候,对象还没产生。如何赋值?
}
void A::geti() //你这里函数定义的是void,
{
return i; //这里却返回了一个值,把void改成int
}
void A::getj()
{
return j;//和上面的一样
}
void main()
{
A a;
int i,j;
i=a.geti; //2对"()"漏掉了
j=a.getj;
cout<}
下面我修改好的程序:
#include
class A
{
private:
int i;
int j;
public:
void initial(); //代替你想定义的构造函数
int geti();
int getj();
};
void A::initial()
{
i=10;
j=20;
}
int A::geti()
{
return i;
}
int A::getj()
{
return j;
}
void main()
{
A a;
a.initial();
int i,j;
i=a.geti();
j=a.getj();
cout<}