欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

类———用类定义对象———error:C++表达式必须包含类类型

程序员文章站 2024-01-14 12:10:40
//原文参考https://blog.csdn.net/lanchunhui/article/details/52503332 你以为你定义了一个类的对象,其实在编译器看来你是声明了一个函数 修改为: 当构造函数中存在一些参数时: 当构造函数的参数带默认值: ......

//原文参考

你以为你定义了一个类的对象,其实在编译器看来你是声明了一个函数

 1 class test{
 2 public:
 3     test(){ }//无参构造函数
 4     void fool(){ }
 5 };
 6 int main(){
 7     test t();                // 编译器会将 t 视为一个函数;
 8     t.fool();                 // 出错:c++表达式必须包含类类型
 9     return  0;
10 }

修改为:

1 //对象的定义,修改为:
2 test t;

当构造函数中存在一些参数时:

1 class test{
2 public:
3     test(int i) {}  
4     ...
5 };
6 int main(){
7     test t(5);
8     ...
9 }

当构造函数的参数带默认值:

1 class test{
2     test(int i = 0) {}
3 };
4 int main(){
5     test t;//此时i为默认值
6     test t(1);//此时i为1
7     test t();//此时报错:c++ 表达式必须包含类类型
8     ...
9 }