`class car' 的无效使用
invalid use of `class car'
using namespace std;
class car
{
private:
string name;
string brand;
int tspeed;
public:
car();
car(string name1,string brand1,int ip);
car(car &ref);
~car();
void disp();
};
car::car()
{
cout<<"default constructor invoked\n";
}
car::car(string name1, string brand1, int sp)
{
name=name1;
brand=brand1;
tspeed=sp;
cout<<"parameterised constructor invoked\n";
}
car::car(car &ref)
{
name=ref.name;
brand=ref.brand;
tspeed=ref.tspeed;
cout<<"copy constructor invoked\n";
}
car::~car()
{
cout<<"destructor invoked\n";
}
void car::disp()
{
cout<<"enter the name\n";
cin>>name;
cout<<"entr the brand\n";
cin>>brand;
cout<<"enter the top speed\n";
cin>>tspeed;
cout<<"name:"<<name<<endl;
cout<<"brand:"<<brand<<endl;
cout<<"top speed:"<<tspeed<<endl;
}
int main()
{
car c1,c2,c3;
c1.car();
c1.disp();
c2.car(" "," ",0);
c2.disp();
c3.car(c2);
c3.disp();
return 0;
}
--------------------配置:mingw5 - CUI 发布,生成器类型:MinGW---------------- ------
正在检查文件相关性...
正在编译 C:\Users\Joe\Documents\C-Free\Temp\Untitled1.cpp...
[错误] C:\Users\Joe\Documents\C-Free\Temp\Untitled1.cpp:55: 错误:'class 汽车'
的使用无效
[错误] C:\Users\Joe\Documents\C-Free\Temp\Untitled1.cpp:56: 错误: `c1' 未在此范围内声明
[错误] C:\Users\Joe\Documents\C-Free\Temp\Untitled1.cpp:57: 错误: `c2' 未在此范围内声明
[错误] C:\Users\Joe\Documents\C-Free\Temp\Untitled1.cpp:59: 错误: `c3' 未在此范围内声明
[警告] C:\Users\Joe\Documents\C-Free\Temp\Untitled1.cpp:62:2:警告:文件末尾没有换行符
完成 Make Untitled1:4 个错误,1 个警告
无效使用class汽车有什么错误?
您在此处错误地使用了 Car
构造函数。相反,您的代码应如下所示:
car c2(" "," ",0);
您的代码也存在性能问题 - 您没有必要创建字符串副本。您的构造函数应该具有以下签名:
car(std::string name, std::string brand, int tspeed) : name(name), brand(brand), tspeed(tspeed) {}
在 C++ 中,构造函数的调用方式不同:您编写 Type name(argument1, ...)
。所以这就是你要写的内容:
int main()
{
car c1;
c1.disp();
car c2(" "," ",0);
c2.disp();
car c3(c2);
c3.disp();
return 0;
}
该语言不允许使用语法:
c1.car();
c2.car(" "," ",0);
c3.car(c2);
构建 class 的实例。
您可以使用:
car c1; // Use the default constructor
car c2(" "," ",0); // Use the constructor with all the details.
car c3(c2); // Use the copy constructor.
或使用赋值:
c2 = car(" "," ",0);
c3 = c2;
using namespace std;
class car
{
private:
string name;
string brand;
int tspeed;
public:
car();
car(string name1,string brand1,int ip);
car(car &ref);
~car();
void disp();
};
car::car()
{
cout<<"default constructor invoked\n";
}
car::car(string name1, string brand1, int sp)
{
name=name1;
brand=brand1;
tspeed=sp;
cout<<"parameterised constructor invoked\n";
}
car::car(car &ref)
{
name=ref.name;
brand=ref.brand;
tspeed=ref.tspeed;
cout<<"copy constructor invoked\n";
}
car::~car()
{
cout<<"destructor invoked\n";
}
void car::disp()
{
cout<<"enter the name\n";
cin>>name;
cout<<"entr the brand\n";
cin>>brand;
cout<<"enter the top speed\n";
cin>>tspeed;
cout<<"name:"<<name<<endl;
cout<<"brand:"<<brand<<endl;
cout<<"top speed:"<<tspeed<<endl;
}
int main()
{
car c1,c2,c3;
c1.car();
c1.disp();
c2.car(" "," ",0);
c2.disp();
c3.car(c2);
c3.disp();
return 0;
}
--------------------配置:mingw5 - CUI 发布,生成器类型:MinGW---------------- ------
正在检查文件相关性...
正在编译 C:\Users\Joe\Documents\C-Free\Temp\Untitled1.cpp...
[错误] C:\Users\Joe\Documents\C-Free\Temp\Untitled1.cpp:55: 错误:'class 汽车'
的使用无效[错误] C:\Users\Joe\Documents\C-Free\Temp\Untitled1.cpp:56: 错误: `c1' 未在此范围内声明
[错误] C:\Users\Joe\Documents\C-Free\Temp\Untitled1.cpp:57: 错误: `c2' 未在此范围内声明
[错误] C:\Users\Joe\Documents\C-Free\Temp\Untitled1.cpp:59: 错误: `c3' 未在此范围内声明
[警告] C:\Users\Joe\Documents\C-Free\Temp\Untitled1.cpp:62:2:警告:文件末尾没有换行符
完成 Make Untitled1:4 个错误,1 个警告
无效使用class汽车有什么错误?
您在此处错误地使用了 Car
构造函数。相反,您的代码应如下所示:
car c2(" "," ",0);
您的代码也存在性能问题 - 您没有必要创建字符串副本。您的构造函数应该具有以下签名:
car(std::string name, std::string brand, int tspeed) : name(name), brand(brand), tspeed(tspeed) {}
在 C++ 中,构造函数的调用方式不同:您编写 Type name(argument1, ...)
。所以这就是你要写的内容:
int main()
{
car c1;
c1.disp();
car c2(" "," ",0);
c2.disp();
car c3(c2);
c3.disp();
return 0;
}
该语言不允许使用语法:
c1.car();
c2.car(" "," ",0);
c3.car(c2);
构建 class 的实例。
您可以使用:
car c1; // Use the default constructor
car c2(" "," ",0); // Use the constructor with all the details.
car c3(c2); // Use the copy constructor.
或使用赋值:
c2 = car(" "," ",0);
c3 = c2;