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

来源:百度知道 编辑:UC知道 时间:2024/06/08 12:39:08
我是初学者,请大家为我写一个正确可运行的例子可以吗?
#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++ 包括的关键字, 见如下网页:
http://www.cppreference.com/keywords/index.html

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(