#include<iostream.h>
#include<string.h>
class person
{private:
int age;
char name[10];
public:
init(int i,char *str);
display()
{cout<<name<<" is "<<age<<" years old."<<endl;
}
}
init(int i,char *str);//这行什么意思呀,没有它不行吗?它是不是多余呀
inline person::init(int i,char *str)
{age=i;
strcpy(name,str);
}
main()
{person demo;
demo.init(25,"Li Wei");
demo.display();
帮变量age和name赋值的!
初学者,觉得可以不用!
init(int i,char *str);//这行什么意思呀,没有它不行吗?它是不是多余呀
声明的一个全局函数,这个程序里是多余
没那条语句不行吗?不明白为什么要加它
给数据成员赋值,你也可以通过构造函数对数据进行初始化
#include<iostream.h>
#include<string.h>
class person
{private:
int age;
char name[10];
public:
person(int i,char *str);
void display()
{
cout<<name<<" is "<<age<<" years old."<<endl;
}
}
init(int i,char *str);//这行什么意思呀,没有它不行吗?它是不是多余呀
person::person(int i,char *str)
{age=i;
strcpy(name,str);
}
main()
{person demo(25,"Li Wei");
demo.display();
}
没有它当然可以啥。
#include<iostream.h>
#include<string.h>
class person
{private:
int age;
char name[10];
public:
init(int i,char *str);//void init(...
display()//void display(...
{cout<<name<<" is "<<age<<" years old."<<endl;
}
} //这里少了括号吧?
init(int i,char *str);//这行什么意思呀,没有它不行吗?它是不是多余呀
//这行是一个function声明,init(int,char*),和你的person里面的init无关,去掉可以
inline person::init(int i,char *str)
{age=i;
strcpy(name,str);
}
main()
{person demo;
demo.init(25,"Li Wei");
demo.display();
//这里少了冒号吧?
有无那一句都没影响吧
#include<iostream>
#include<cstring>
using namespace std;
class person
{private:
int age;
char name[10];
public:
inline init(int i,char *str);
void display()
{cout<<name<<" is "<<age<<" years old."<<endl;
}
};
init(int i,char *str);//这行什么意思呀,没有它不行吗?它是不是多余呀
inline person::init(int i,char *str)
{age=i;
strcpy(name,str);
}
main()
{person demo;
demo.init(25,"Li Wei");
demo.display();
}
OK,谢谢大家的帮忙,小弟明白了
我也觉得有些多余,
因为在类里面已经有了声明了
这儿真不知起什么作用
你试过没有BCB编译有什么不同
我去试一试
哈哈那一行去掉编译错误一堆
不去掉也有三项错误
W8070 Function should return a value
E2111 Type person may not be defined here
W8070 Founction should return a value
我无法调通这个程序
请帮忙看看,谢谢