相关疑难解决方法(0)

错误:请求'..'中的成员'..',这是非类型的

我有一个带有两个构造函数的类,一个不带参数,另一个带一个参数.

使用带有一个参数的构造函数创建对象可以按预期工作.但是,如果我使用不带参数的构造函数创建对象,我会收到错误.

例如,如果我编译此代码(使用g ++ 4.0.1)...

class Foo
{
  public:
    Foo() {};
    Foo(int a) {};
    void bar() {};
};

int main()
{
  // this works...
  Foo foo1(1);
  foo1.bar();

  // this does not...
  Foo foo2();
  foo2.bar();

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

...我收到以下错误:

nonclass.cpp: In function ‘int main(int, const char**)’:
nonclass.cpp:17: error: request for member ‘bar’ in ‘foo2’, which is of non-class type ‘Foo ()()’
Run Code Online (Sandbox Code Playgroud)

为什么这样,我如何使它工作?

c++

411
推荐指数
5
解决办法
41万
查看次数

构造函数上没有括号,没有参数是语言标准吗?

我正在使用g ++编译Cygwin中的C++程序,我有一个类,其构造函数没有参数.我有线:

MyClass myObj();
myObj.function1();
Run Code Online (Sandbox Code Playgroud)

当我尝试编译它时,我收到了消息:

error: request for member 'function1' in 'myObj', which is of non-class type 'MyClass ()()'
Run Code Online (Sandbox Code Playgroud)

经过一番研究,我发现修复是将第一行更改为

MyClass myObj;
Run Code Online (Sandbox Code Playgroud)

我可以发誓我之前用C++中的括号做了空构造函数声明.这可能是我正在使用的编译器的限制,还是语言标准真的说不使用括号用于没有参数的构造函数?

c++ standards constructor

49
推荐指数
4
解决办法
3万
查看次数

C++默认构造函数未被调用

我是c +的新手,如果我忽略了一些简单的东西,请原谅我.我有一个班级圈:

class Circle: public Shape{
protected:
     //string name;
     Point focus;
     float radius;
private:

public:
    virtual void calculateArea();
    virtual void calculatePerimeter();
    Circle();
    Circle(Point p, float r);
Run Code Online (Sandbox Code Playgroud)

};

我有两个构造函数,其中一个是我重载的默认值:

Circle::Circle()
{
    Point p(1,1);
    focus = p;
    radius = 10;
    name = "Circle";
    calculatePerimeter();
    calculateArea();
    cout<<"default circle"<<endl;
}
Circle::Circle(Point p, float r)
{
    focus = p;
    radius = r;
    name = "Circle";
    calculatePerimeter();
    calculateArea();
}
Run Code Online (Sandbox Code Playgroud)

在我的主要部分中,我尝试使用每个构造函数创建两个圆圈,但是使用Circle()创建的圆圈永远不会被创建.我不能为我的生活搞清楚为什么?没有错误消息或任何内容.

int main{
    Circle circle(a, 3.3);
    Circle c2();
}
Run Code Online (Sandbox Code Playgroud)

c++ constructor class

8
推荐指数
2
解决办法
9684
查看次数

标签 统计

c++ ×3

constructor ×2

class ×1

standards ×1