定义一个学生类,有学号(Sno)、姓名(name)、年龄(age)等私有属性,拥有共有成员函数来获取和设置学生类的属性;为学生类设计构造和析构函数,分别打印“学生类已创建”和“学生类已销毁”,观察构造和析构函数的执行

tianshanaoxue 2008-04-18 09:35:07
定义一个学生类,有学号(Sno)、姓名(name)、年龄(age)等私有属性,拥有共有成员函数来获取和设置学生类的属性;为学生类设计构造和析构函数,分别打印“学生类已创建”和“学生类已销毁”,观察构造和析构函数的执行
下面是我照葫芦画瓢的程序,不知道对不对。。
#include<cstring>
#include<iostream>

class stud
{
private: int sno,age;
char name;
char sex;
public:
stud(int sn, int a, char n, char s) //构造函数
{
sno = sn;
age = a;
strcpy(name, n);
sex = s;
cout<<"学生类已创建"<<endl;
}
~stud() //析构函数
{
cout<<"学生类已销毁"<<endl;
}
}

编译完有错误。。。\stu.cpp(23) : fatal error C1004: unexpected end of file found
Error executing cl.exe.
...全文
4795 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianshanaoxue 2008-04-18
  • 打赏
  • 举报
回复
,<iostream>和<iostream.h>是不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。

后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。

因此,当使用<iostream.h>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现;当使用<iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout。
IT_lau 2008-04-18
  • 打赏
  • 举报
回复
楼上的已经很好了,顺便问一下using namespace std;
这句有时要用,但有时不用也可以,#include<iostream.h>
到底是怎么回事??
HelloDan 2008-04-18
  • 打赏
  • 举报
回复

#include <string>
#include <iostream>

using namespace std;


class stud
{
private:
int sno,age;
string name;
char sex;
public:
stud(int sn=0, int a=18, string n="Lee", char s='M') //构造函数
{
sno = sn;
age = a;
name=n;
sex = s;
cout <<"学生类已创建" <<endl;
}
~stud() //析构函数
{
cout <<"学生类已销毁" <<endl;
}
};




int main()
{
stud st;
return 0;
}

clhposs 2008-04-18
  • 打赏
  • 举报
回复

strcpy(name, n); //char可以直接复 name=n;
clhposs 2008-04-18
  • 打赏
  • 举报
回复

#include <cstring>
#include <iostream>

class stud
{
private: int sno,age;
char name;
char sex;
public:
stud(int sn, int a, char n, char s) //构造函数
{
sno = sn;
age = a;
strcpy(name, n);
sex = s;
cout < <"学生类已创建" < <endl;
}
~stud() //析构函数
{
cout < <"学生类已销毁" < <endl;
}
};//加个;

64,849

社区成员

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

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