将对象作为参数传递给构造函数?

时间:2017-03-12 19:20:38

标签: c++ object constructor

我遇到将对象作为参数传递给另一个构造函数的类的问题。

    class A{
        protected:
            double x;
            double y;
        public:
            A(double f, double d): x(f), y(d){}

    };

    class B: public A{
        protected:
            A a;
        public:
            B(const A &aa): a(aa){} 
    };

但是在B的构造函数中,有一个错误。 该错误表明我提供了0个参数,而候选者期望为2.

我在StackOverFlow中搜索过类似的先前问题,但我找到的答案表明我编码的内容是正确的。 我无法弄清楚错误。有帮助吗?

提前致谢。

1 个答案:

答案 0 :(得分:3)

由于您从#include <iostream> #include <vector> using namespace std; class Rectangle{ int length; int width; public: Rectangle(int length, int width){ this->length = length; this->width = width; } int area(){ return this->width * this->length; } }; int main() { vector<Rectangle> v; v.push_back(Rectangle(1,2)); v.push_back(Rectangle(3,4)); cout << v[0].area()<<endl; cout << v[1].area()<<endl; // your code goes here return 0; } 延伸并包含A,因此您需要将参数传递给这两个A

A