C ++错误:未在范围中声明;成员函数

时间:2016-03-27 03:58:18

标签: c++ c++11 scope compiler-errors

我对“结果矢量”中有一个错误'在这方面没有申明。我不知道在哪里或如何申报这个?结果向量的意图是显示添加向量的X和每个向量的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;


}

3 个答案:

答案 0 :(得分:1)

您尚未声明result_vector它不存在,因此错误。

另外,您是using namespace std;,并且您已将某个班级命名为vector 因此,对vector的引用含糊不清。

您的代码还有其他几个错误,我建议您使用调试器并完成错误

答案 1 :(得分:1)

错误是不言自明的。

  • 您需要在首次使用之前声明result_vector。
  • 您不能将类名和对象名一起作为参数传递。
  • 假设此语句cube[0].t.set([1.5]*3) cube[0].r.set([1.5]*3) 应打印向量的x和y值,则必须单独调用cout <<"Default \n" test.get_x().get_y() << "\n";get_x()
  • 同样如Andreas DM所述,您无法使用get_y(),因为它在进行更正后与现有的类vector.vector类冲突

    using namespace std;

答案 2 :(得分:0)

在使用变量之前,必须声明,以便编译器知道它退出。在C ++中,这是必需的(某些语言,如Python,不要求它),因此在使用它之前首先声明result_vectorvector result_vector;