我收到错误:没有适合 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) 以下函数指针赋值如何:
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)