注册 登录
编程论坛 C++教室

程序老是报错,关于类的引用

honestgrubby 发布于 2007-08-12 16:45, 739 次点击
#include<iostream>
void main()
{
class Cat
{public:
Cat(int age,int weight);
~Cat(){}
int getage(){return itsage;}
int getweight(){return itsweight;}
private:
int itsage;
int itsweight;
};
Cat::Cat(int age,int weight)
{itsage=age;
itsweight=weight;
}
Cat frisky(5,8);
cout<<"frisky age:"<<frisky.getage()<<endl;
cout<<"frisky weight"<<frisky.getweight()<<endl;
Cat & rfrisky=frisky;
cout<<"rfrisky age:"<<rfrisky.getage()<<endl;
cout<<"rfrisky weight"<<rfrisky.getweight()<<endl;

}
我用的是C-free ,构造函数定义那一行老是报错,到底哪有问题,望诸位赐教!
谢谢。
7 回复
#2
aipb20072007-08-12 21:36

主函数里写是什么类定义啊?成员函数又写在主函数里???
没有这样的嵌套哦!!!

#3
honestgrubby2007-08-13 10:39
版主英明!
我昏了!!!
#4
honestgrubby2007-08-13 10:47
不过为什么类定放在主函数里定义编译就通不过?这内在的机理是什么?
谢谢!!

#5
aipb20072007-08-13 11:27
内在机理就不知道了。
主函数也是函数,函数体内就是函数的执行过程,你把另外一个不相关的类写在里面……

与机理无关吧,语言总有“可以”和“不可以”哦!
#6
honestgrubby2007-08-14 08:17

版主英明!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

#7
野比2007-08-14 10:08
类定义并不是直接执行的, 需要"预"编译...(在真正的预编译之后)...
比如你在主函数中没有使用到类...
那么不管你类的声明和定义中有多少可执行语句, 最后编译出的binary文件中都不会出现...
函数体内都是可以直接执行的语句...
#8
honestgrubby2007-08-16 16:31
谢谢野比兄!!!!!!!!!!!
1