我正在學習C++並試圖一次性練習翻譯單元和其他東西,但是我收到了標題中列出的錯誤。這個程序是用於學習的目的,我試圖解釋每個頭文件和實現文件應該做什麼。LINKER ERROR LNK1169&LNK2005
-------- -------- CString.h
#ifndef CSTRING_H
#define CSTRING_H
#include <iostream>
namespace w1
{
class CString
{
public:
char mystring[];
CString(char cstylestring[]);
void display(std::ostream &os);
};
std::ostream &operator<< (std::ostream &os, CString &c)
{
c.display(os);
return os;
}
}
#endif
-------- -------- process.h原型用於處理功能
void process(char cstylestring[]);
-------- -------- CString.cpp 要接收C風格串中的構造和通過取前三個字符,並存儲它截斷它在後來通過功能顯示器顯示()
#include <iostream>
#include "CString.h"
#define NUMBEROFCHARACTERS 3
using namespace w1;
w1::CString::CString(char stylestring[])
{
if (stylestring[0] == '\0')
{
mystring[0] = ' ';
}
else
{
for (int i = 0; i < NUMBEROFCHARACTERS; i++)
{
mystring[i] = stylestring[i];
}
}
//strncpy(mystring, stylestring, NUMBEROFCHARACTERS);
}
void w1::CString::display(std::ostream &os)
{
std::cout << mystring << std::endl;
}
-------- process.cpp --------接收一個C風格的字符串並創建一個CString對象,然後通過操作符重載顯示可能截斷的c風格字符串。
#include "process.h"
#include "CString.h"
#include <iostream>
using namespace std;
void process(char cstylestring[])
{
w1::CString obj(cstylestring);
std::cout << obj << std::endl;
}
-------- main.cpp --------通過向處理函數發送C風格字符串來測試目的。因爲你在頭文件是從多個源文件包括定義它
#include <iostream>
#include "process.h"
using namespace std;
int main()
{
char themainstring[] = "hiiiii";
process(themainstring);
return 0;
}
你是如何構建它的? – yacc
我點擊調試器試圖運行main.cpp – TheNubProgrammer
什麼是鏈接錯誤信息? – Phil1970