C++派生类删除函数

#include<iostream>
using namespace std;

struct B {
int returnInt() {
return 555;
}
int returnInt(int add) {
return add + 555;
}
int returnInt(int mul,int move) {
return (mul << move) + 555;
}
int returnInt(int mul, int move,int div) {
return (mul << move) / div + 555;
}
float returnInt(float self) {
return self;
}
};

struct D0 :public B { //删除一部分函数
using B::returnInt;
int returnInt(void) = delete;
int returnInt(int,int,int) = delete;
};

struct D1 :public B { //删除全部函数
int returnInt(void) = delete;
};

int main() {
D0 D0_instance;
//cout << D0_instance.returnInt() << endl;  //提示函数已删除
cout << D0_instance.returnInt(1) << endl;  
cout << D0_instance.returnInt(1, 5) << endl;  
//cout << D0_instance.returnInt(1, 5, 3) << endl;          //提示函数已删除
cout << D0_instance.returnInt(1.0f) << endl;  
D1 D1_instance;  
//cout << D1_instance.returnInt() << endl;  //提示函数已删除
//cout << D1_instance.returnInt(1) << endl;  //提示函数已删除
//cout << D1_instance.returnInt(1, 5) << endl;  //提示函数已删除
//cout << D1_instance.returnInt(1, 5, 3) << endl;           //提示函数已删除
//cout << D1_instance.returnInt(1.0f) << endl;  //提示函数已删除
system("pause");
return 0;
}

猜你喜欢

转载自blog.csdn.net/baidu_41743921/article/details/80247193