【问题标题】:C++Pointer to a ClassC++ 指向类的指针
【发布时间】:2012-10-18 20:03:36
【问题描述】:

我有一个关于指向类的指针的问题。我的意思是在提供类中我想创建一个Course * sample 指针,顺便说一下 course 也是另一个接受一个 int 参数的类,而不是试图从内存中占用空间通过sample=new Course; 但我收到一条错误消息:

Offering.cpp:12:19: error: no matching function for call to ‘Course::Course()’
Offering.cpp:12:19: note: candidates are:
lib.h:63:5: note: Course::Course(int)
lib.h:63:5: note:   candidate expects 1 argument, 0 provided

有谁知道我错在哪里?还是谢谢。

【问题讨论】:

  • 没有代码就无法提供帮助。但是您是否阅读了错误消息以及它试图告诉您什么?修复非常简单

标签: c++ class pointers


【解决方案1】:

Course *sample = new Course(11);

如果当然将int 作为构造函数参数,您必须传递它,即使在堆上分配时也是如此。

【讨论】:

    【解决方案2】:

    Course 定义一个默认构造函数。如果不能或不应该,则必须使用现有的。

    Course * sample = new Course(1337);
    

    【讨论】:

      【解决方案3】:

      你需要做的:

      Course *sample = new Course(10);
      

      这是因为您显然为 Course 定义了一个构造函数,其定义为:

      Course(int);
      

      当您定义自定义构造函数时,不会自动添加默认构造函数( Course() )。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-12
        • 2018-03-24
        • 2021-12-31
        • 1970-01-01
        • 2021-01-12
        • 2010-09-08
        相关资源
        最近更新 更多