C++ 错误 : Not declared in scope; Member function

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

我有一个错误,“结果 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/

相关文章:

c++ - 如何实现 MS 特定的 _BitScanReverse() 函数?

c++ - 'typedef' 是否在 C++ 类中自动继承?

javascript - 如何列出javascript对象的函数/方法? (甚至有可能吗?)

swift - 如果 Swift 'guard' 语句必须退出作用域,那么作用域的定义是什么?

javascript - Jquery document.click 中的多个函数定义?

c++ - C++ 中的字典使用没有值、只有键的映射

c++ - 位摆弄黑客 : most efficient way to remove one bit every n bits?

c++ - 检索结构中最接近的 X 和 Y 的函数?

C++11:我应该使用 valarray 还是向量进行数值计算

c++ - C++ 中类成员上的类和 std::async