-2
所以我有兩個文件名爲「colors.h」的頭文件和一個名爲「colors.cpp」的源文件。在命名空間clr裏面的頭文件中,我試圖創建3個函數,然後我想在cpp文件中定義它們。出於某種原因,編譯器不會讓我原型或定義函數,而是獲得預期的主表達式。我知道這實際上意味着什麼,但在這種情況下,我失去了爲什麼會發生。預期在標題和cpp中的主要表達式
#include "colors.h"
#include <iostream>
namespace clr{
void set(color c){
std::cout << c;
}
void print(color c,std::string s){
}
void frame(useconds_t usec){
}
};
頭
#ifndef COLOR_H
#define COLOR_H
#include <string>
#include <iostream>
#include <unistd.h>
using namespace std;
namespace color {
string black = "\033[0;30m";
string red = "\033[0;31m";
string green = "\033[0;32m";
string yellow = "\033[0;33m";
string blue = "\033[0;34m";
string magenta = "\033[0;35m";
string cyan = "\033[0;36m";
string white = "\033[0;37m";
string reset = "\033[0;39m";
};
namespace clr{
void clr:: set(color c);
void print(color c, std::string s);
void frame(useconds_t usec);
};
#endif
該錯誤是哪一行?顏色也是一個命名空間,而不是一個類型,所以它不能用於這種類型。 –
歡迎來到堆棧溢出。請花些時間閱讀[The Tour](http://stackoverflow.com/tour),並參閱[幫助中心](http://stackoverflow.com/help/asking)中的資料,瞭解您可以在這裏問。 –
錯誤位於clr命名空間內的兩行文件中的所有三個函數中。嗯,好吧,我想使用枚舉數據類型來定義顏色,我假設這意味着要創建一個命名空間。我猜我應該實際使用枚舉方法? –