我已经创建了头文件和main.cpp
。
根据我的理解,应该在shapeMaker.h
文件中创建类和函数,然后在shapeMaker.cpp
中放入功能,最后对类及其对象进行分类,以将其值显示在屏幕上。 / p>
但是,当我在repl。上执行此操作时,屏幕上不会打印任何内容。
该代码不会崩溃或尖叫任何错误,表明一切都已正确连接。但是,当我按下run时,屏幕空白。甚至诸如cout << "hello world"
之类的东西也不会显示。我将如何运行此代码以在屏幕上显示?
ShapeMaker.h
#include <iostream>
#include <string>
class ShapeMaker {
private:
int width = 5;
int height = 5;
char symbol = '*';
protected:
int returnCanvasWidth(int);
int returnCanvasHeight(int);
char returnDrawSymbol(char);
void setCanvasHeight(int);
void setDrawingSymbol(char);
public:
void drawMidCanvasHorizontal();
void drawMidCanvasVerticalLine();
void drawCanvasWidthSizeFilledSqaure();
void drawCanvasWidthSizedSmilingFace();
};
ShapeMaker.cpp
#include "ShapeMaker.h"
int ShapeMaker::returnCanvasWidth(int width){
std::cout << width;
return width;
}
int ShapeMaker::returnCanvasHeight(int height){
std::cout << height;
return height;
}
char ShapeMaker:: returnDrawSymbol(char symbol){
std::cout << symbol;
return symbol;
}
...
main.cpp
#include "ShapeMaker.h"
int main() {
ShapeMaker s;
return 0;
}
答案 0 :(得分:2)
问题:
您只能在ShapeMaker
方法中调用main
的空构造函数和析构函数,而您自己没有提供实现(因此使用默认实现)。因此很明显,您的程序不会在main
中打印任何内容。
即使诸如cout <<之类的东西都不会显示。:如果您从不执行这些命令,终端将不会向您问候“ hello world”
解决方案:
要在当前示例中输出"hello world"
而无需更改main
方法,请执行以下操作:
添加您自己的默认构造函数声明
public:
ShapeMaker();
到ShapeMaker.h
。
添加您自己的默认构造函数定义
ShapeMaker::ShapeMaker() {
std::cout << "hello world";
}
到ShapeMaker.cpp
。
答案 1 :(得分:0)
您刚刚创建了shape对象,由于没有可打印的构造函数,因此您必须调用成员函数来打印对象。
您可以像下面这样调用成员函数:
s.drawMidCanvasHorizontal();
顺便说一句,我看不到drawMidCanvasHorizontal()函数的任何实现,因此您必须首先编写它的用途。