小编tal*_*099的帖子

继承:没有合适的默认构造函数可用

我收到错误:没有适合 B 的默认构造函数。但是,当我给出参数 ii 并且不想调用默认构造函数时,我不明白为什么编译器要调用默认构造函数。

#include <iostream>
using namespace std;

class A {
    int i;
public:
    A(int ii) { i = ii; cout << "Constructor for A\n"; }
    ~A() { cout << "Destructor for A\n"; }
    void f() const{}
};

class B {
    int i;
public:
    B(int ii) { i = ii; cout << "Constructor for B\n"; }
    ~B() { cout << "Destructor for B\n"; }
    void f() const{}
};

class C:public B {
    A a;
public:
    C() { cout …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance constructor

2
推荐指数
1
解决办法
6656
查看次数

在函数指针赋值中进行转换

以下函数指针赋值如何:

exit = (void (*)()) &jump;
Run Code Online (Sandbox Code Playgroud)

不同于:

exit = &jump;
Run Code Online (Sandbox Code Playgroud)

其中exit是一个定义为的函数指针:

void (*exit) ();
Run Code Online (Sandbox Code Playgroud)

'jump'是一个声明为的函数:

void jump();
Run Code Online (Sandbox Code Playgroud)

c c++

2
推荐指数
1
解决办法
1117
查看次数

标签 统计

c++ ×2

c ×1

constructor ×1

inheritance ×1