我有一个错误,“结果 vector ”未在此范围内声明。我不确定在哪里或如何申报? Result Vector 的目的是显示 vector 的 X 和每个 vector 的 Y 相加的结果,然后返回 result_vector
#include <iostream>
#include <vector>
using namespace std;
class vector{
private:
double x;
double y;
public:
//Constructor - default
vector() : x(0), y(0) {}
//Constructor - Custom
vector(double xx, double yy) : x(xx), y(yy) {}
//Get X & Y Coordinates
double get_x() { return x;
}
double get_y() { return y;
}
//Set X & Y Coordinates
void set_x( double xx) { x = xx;
}
void set_y( double yy) { y = yy;
}
//Adding Vectors
vector add_vector( vector v1, vector v2){
result_vector.x = v1.x + v2.x;
result_vector.y = v1.y + v2.y;
return result_vector;
}
//Subtracting Vectorsed
vector subtract_vector( vector v1, vector v2){
result_vector.x = v1.x - v2.x;
result_vector.y = v1.y - v2.y;
return result_vector;
}
};
int main() {
//Default
vector test;
cout <<"Default \n" test.get_x().get_y() << "\n";
//Customer
vector test2(10, 12);
cout <<"Custom \n" test2.get_x().get_y() << "\n";
//Adding
vector add = vector.add_vector(vector test1&, vector test2&);
cout <<"Adding \n" add.get_x().get_y() <<"\n";
//Subtracting
vector sub = vector.subtract_vector(vector test1&, vector test2&);
cout <<"Subtracting \n" sub.get_x().get_y() <<"\n";
return 0;
}
最佳答案
错误是不言自明的。
- 您需要在首次使用之前声明 result_vector。
- 您不能将类名和对象名一起作为参数传递。
- 假设这个声明
cout <<"Default \n" test.get_x().get_y() << "\n";
应该打印 vector 的 x 和 y 值,你将不得不调用get_x()
和get_y()
分别。 另外正如 Andreas DM 所提到的,您不能使用
using namespace std;
因为修正后与现有类vector.vector类冲突#include <iostream> #include <vector> class vector{ private: double x; double y; public: //Constructor - default vector() : x(0), y(0) {} //Constructor - Custom vector(double xx, double yy) : x(xx), y(yy) {} //Get X & Y Coordinates double get_x() { return x; } double get_y() { return y; } //Set X & Y Coordinates void set_x( double xx) { x = xx; } void set_y( double yy) { y = yy; } //Adding Vectors vector add_vector( vector v2){ vector result_vector; result_vector.x = x + v2.x; result_vector.y = y + v2.y; return result_vector; } //Subtracting Vectorsed vector subtract_vector( vector v2){ vector result_vector; result_vector.x = x - v2.x; result_vector.y = y - v2.y; return result_vector; } }; int main() { //Default vector test; std::cout <<"Default \n" <<test.get_x()<<test.get_y() << "\n"; //Customer vector test2(10, 12); std::cout <<"Custom \n" <<test2.get_x()<<test2.get_y() << "\n"; //Adding vector add; add = test.add_vector(test2); std::cout <<"Adding \n" <<add.get_x()<<add.get_y() <<"\n"; //Subtracting vector sub ; sub = test.subtract_vector(test2); std::cout <<"Subtracting \n"<< sub.get_x()<<sub.get_y() <<"\n"; return 0; }
关于C++ 错误 : Not declared in scope; Member function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36243667/