-2
"color.h"という名前のヘッダーと "colors.cpp"というソースファイルの2つのファイルが必要です。名前空間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
このエラーはどの行ですか?また、colorは型ではなく名前空間であるため、そのまま使用することはできません。 –
ようこそスタックオーバーフロー。 [The Tour](http://stackoverflow.com/tour)を読み、[ヘルプセンター](http://stackoverflow.com/help/asking)の資料を参考にしてください。ここに聞いてください。 –
エラーは、clr名前空間内の行にあり、両方のファイルに3つの関数があります。そして、ああ、私は色を定義するためにenumデータ型を使用すると仮定していたので、名前空間を作ることを前提としていました。私は実際にenumメソッドを使うべきだと思っていますか? –