这个C++类程序怎么错了?

王朝知道·作者佚名  2009-07-16
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

我是初学者,请大家为我写一个正确可运行的例子可以吗?

#include "iostream.h"

class OutPut

{

public:

OutPut(int aa,char str_1);

SetDate(int aa,char str_1);

private:

char str[30];

int a;

protected:

}Set;

void main(void)

{

Set.SetDate();

return ;

}

OutPut::OutPut(int aa,char str_1)

{

aa=10;

return aa;

}

參考答案:

首先,set 不是标准的C++ 保留字。

C++ 包括的关键字, 见如下网页:

lz你的程序有许多不对的地方:

1>

class OutPut

{ ...}Set;

这定义了一个OutPut类,和一个叫做Set的全局的OutPut类对象, 这是C语言的写法,在C++中一般不这样写.可以分开写:

class OutPut

{ ...};

OutPut Set;

2> 类的构造函数不能有返回值.

OutPut::OutPut(int aa,char str_1)

{

aa=10;

return aa;

}

return aa; 是不应当出现的.

3> OutPut类的函数SetDate(); 没有返回值,这将产生编译错误.在C++里,一个函数必须显式的说明返回值,如果确实没有返回值,也必须使用void说明.

void SetDate();

4> 调用Set.SetDate(); 没有实参

5> 调用了SetDate()函数,但是该函数只有声明,但却没有定义 .

6> 在C++中,main()默认返回int型, 可以返回void型.但是某些编译器强制要求main()返回int, 不能返回void.

所以,main()最好返回int.

int main()

{

return 0;

}

根据你的大体意图, 写了一些代码

class OutPut

{

public:

//OutPut();

//OutPut();

int SetDate(int aa,char str_1);

private:

char str[30];

int a;

protected:

};

OutPut Set;

int main()

{

Set.SetDate(10, 'A');

return 0;

}

int OutPut::SetDate(int aa,char str_1)

{

a = aa;

str[0] = str_1;

}

最后一句话, 如果你打算 学习 C++,就要把C++当成一门全新的语言, 认为它与C语言没有任何瓜葛;弄清C++ 和C 语言的区别。

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航