请帮助在继承 #constructor_error 上调试此 c++ 代码
Please help debug this c++ code on Inheritance #constructor_error
这段代码中有一个错误,请帮我解决。
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
class base
protected:
double area;
string p_name;
int n_side;
void show_out();
base(string,int);
};
class square:public base {
private:
double length,width;
public:
void get_data();
void cal_sarea();
square();
};
class triangle:public base {
private:
double base,height;
public:
void get_data();
void cal_tarea();
triangle();
};
int main() {
square sob1;
triangle tob1;
sob1.get_data();
sob1.cal_sarea();
tob1.get_data();
tob1.cal_tarea();
return 0;
}
void base::show_out() {
cout<<setiosflags(ios::fixed|ios::showpoint) <<setprecision(2)<<area<<endl;
}
void square::get_data() {
cout<<"please enter length"<<endl;
cin>>length;
cout<<"please enter width"<<endl;
cin>>width;
}
void square::cal_sarea() {
area = length * width;
show_out();
}
void triangle::get_data() {
cout<<"please enter base of triangle"<<endl;
cin>>base;
cout<<"please enter height of the triangle"<<endl;
cin>>height;
}
void triangle::cal_tarea() {
area = 0.5 * base * height;
show_out();
}
base::base(string name,int num)
:p_name(name),n_side(num) {}
square::square()
:base("square",4){}
triangle::triangle() // gives a errors here, it says no matching fucntion to call to base::base()
:base("triangle",5) {}
你的triangle
-class有一个名为base
的成员变量,并且还继承自一个名为base
的类。
编译器混淆了这些名称。
成员变量的命名方式与基类名称的命名方式不同。
每个项目必须具有唯一的名称。
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 在linux上调试巨大的C++项目
- 为什么使用__LINE_的代码在发布模式下在MSVC下编译,而不是在调试模式下
- 如何针对特定情况调试和修复此双自由内存损坏问题
- 正在VS调试器中监视映射条目
- 使用调试/崩溃报告将应用程序部署到客户端
- VC++本机单元测试,找不到调试符号
- 如何在C++生成器中禁用"使用调试.dcus"
- 使用vscode调试时,GDB意外退出
- 即使使用调试编译标志,表达式也是"optimized out"
- 调试 CUDA MMU 故障
- 小字符串优化(调试与发布模式)
- 调试和自由执行中的信号处理
- 调试编译的服务器在数据库打开时崩溃
- Visual Studio 调试优化如何工作?
- 如何配置Visual Studio Code以使用cygwin,cmake和gcc进行调试
- 从 exe 文件 (Visual Studio ) 启动时调试断言失败
- 如何在大型c++项目的可视化代码中设置调试
- Qt 调试显示行号
- 如何将可变参数模板转换为多个单个模板?(C++竞争编程调试模板)