为什么在 class 的函数中使用对象时出现未声明的标识符错误?
Why undeclared identifier error occurres while I'm using objet in class's function?
我一直在自学 CPP OOP,但出现了这个错误:
错误 C2065 'carObj1': 未声明的标识符
因为我是自学,所以我尝试在 Internet 上搜索但没有找到!
谁能帮我解决这个问题?
#include <iostream>
#include <string>
using namespace std;
class car {
public:
string brand;
string model;
int year;
void enterCar() {
cout << "\nYour car is:" << carObj1.brand << " MODEL:" << carObj1.model << " BUILT-IN:" << carObj1.year;
}
};
int main()
{
car carObj1;
cout << "Enter your car's brand name:\n";
cin >> carObj1.brand;
cout << "Enter your car's Model:\n";
cin >> carObj1.model;
cout << "Enter your car's Built-in year:\n";
cin >> carObj1.year;
carObj1.enterCar();
return 0;
}
问题 是您试图访问名为 carObj1
在成员函数 car::enterObj
.
的上下文中不存在
要解决这个问题,您可以删除名称carObj1
以便可以使用隐式this
指针,或者您可以显式使用this
指针如下图:
void enterCar() {
//-------------------------------------------vvvvv-------------->equivalent to writing `this->brand`
std::cout << "\nYour car is:" << brand <<std::endl;
//-----------------------------------vvvvvv------------------->explicitly use this pointer
std::cout<< " MODEL:" << this->model << std::endl;
std::cout<<" BUILT-IN:" << this->year;
}
我还建议使用 good C++ book.
学习 C++
我一直在自学 CPP OOP,但出现了这个错误: 错误 C2065 'carObj1': 未声明的标识符
因为我是自学,所以我尝试在 Internet 上搜索但没有找到! 谁能帮我解决这个问题?
#include <iostream>
#include <string>
using namespace std;
class car {
public:
string brand;
string model;
int year;
void enterCar() {
cout << "\nYour car is:" << carObj1.brand << " MODEL:" << carObj1.model << " BUILT-IN:" << carObj1.year;
}
};
int main()
{
car carObj1;
cout << "Enter your car's brand name:\n";
cin >> carObj1.brand;
cout << "Enter your car's Model:\n";
cin >> carObj1.model;
cout << "Enter your car's Built-in year:\n";
cin >> carObj1.year;
carObj1.enterCar();
return 0;
}
问题 是您试图访问名为 carObj1
在成员函数 car::enterObj
.
要解决这个问题,您可以删除名称carObj1
以便可以使用隐式this
指针,或者您可以显式使用this
指针如下图:
void enterCar() {
//-------------------------------------------vvvvv-------------->equivalent to writing `this->brand`
std::cout << "\nYour car is:" << brand <<std::endl;
//-----------------------------------vvvvvv------------------->explicitly use this pointer
std::cout<< " MODEL:" << this->model << std::endl;
std::cout<<" BUILT-IN:" << this->year;
}
我还建议使用 good C++ book.
学习 C++