[英]Why does my main.cpp not print anything from my header file
我已經創建了我的頭文件和main.cpp
。
根據我的理解,您應該在shapeMaker.h
文件中創建類和函數,然后將功能放在shapeMaker.cpp
,最后對類及其對象進行分類以將其值打印到屏幕上。
但是,當我在 repl.it 上執行此操作時,屏幕上不會打印任何內容。
代碼不會崩潰或發出任何錯誤,這表明一切都已正確連接。 但是,當我按下運行時,我遇到了一個空白屏幕。 甚至諸如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();
};
形狀制作工具
#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;
}
...
主程序
#include "ShapeMaker.h"
int main() {
ShapeMaker s;
return 0;
}
問題:
您只在main
方法中調用ShapeMaker
的空構造函數和析構函數,您自己沒有為其提供實現(因此使用默認實現)。 所以很明顯,你的程序不會在main
打印任何內容。
甚至諸如 cout << "hello world" 之類的東西也不會顯示。 :如果你從不執行這些命令,終端就不會用“hello world”來迎接你。
解決方案:
為了在當前示例中輸出"hello world"
而不更改main
方法,請執行以下操作:
添加您自己的默認構造函數聲明
public:
ShapeMaker();
到ShapeMaker.h
。
添加您自己的默認構造函數定義
ShapeMaker::ShapeMaker() {
std::cout << "hello world";
}
到ShapeMaker.cpp
。
您剛剛創建了 shape 對象,並且由於沒有構造函數可以打印某些內容,因此您必須調用成員函數來打印某些內容。
您可以像下面這樣調用成員函數:
s.drawMidCanvasHorizontal();
順便說一句,我看不到 drawMidCanvasHorizontal() 函數的任何實現,因此您必須首先編寫它的用途。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.