[問題] linux complier c++ string

看板C_and_CPP作者 (None)時間15年前 (2009/03/26 15:40), 編輯推噓4(409)
留言13則, 6人參與, 最新討論串1/1
今天我嘗試在linux上編譯自己寫的一小段程式碼 結果編譯一直錯誤並且顯示"錯誤:「string」 沒有命名一個類型" 我查了google以後 他說可能是沒有include string.h這個標頭 於是我又去修改我的程式碼並且加入string.h這個標頭檔 但是還是一直無法使用....不知道到底是哪裡有寫錯.... 還請版友幫忙糾正一下 謝謝 //A.cpp 這是一個測試用的class #include <iostream> #include <string> #include "A.h" using namespace std; A::A() { cout<<"call constructor"<<endl; a="aa"; } //main.cpp 這是主要的程式碼片段 #include <iostream> #include <string> #include "A.h" using namespace std; int main() { A b; return 0; } //A.h 測試用class的定義 #ifndef A_H #define A_H class A { public: string str; A(); }; #endif -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.217.195 b60413:轉錄至看板 Linux 03/26 15:46

03/26 15:54, , 1F
你怎麼編譯你的程式的 ??
03/26 15:54, 1F

03/26 15:57, , 2F
g++ A.cpp main.cpp -o main
03/26 15:57, 2F

03/26 16:10, , 3F
你的問題在 A.h 而不在這兩個 cpp
03/26 16:10, 3F
修文補上A.h ※ 編輯: b60413 來自: 123.195.217.195 (03/26 16:19)

03/26 16:40, , 4F
A.h 明顯有問題啊,string 是什麼東西根本沒描述出來。
03/26 16:40, 4F

03/26 16:47, , 5F
恩...了解 我在A.h中也加了兩行
03/26 16:47, 5F

03/26 16:47, , 6F
#include <iostream>
03/26 16:47, 6F

03/26 16:47, , 7F
using namespace std;
03/26 16:47, 7F

03/26 16:48, , 8F
這樣下去編譯是成功的 但感覺寫法上好像有點多餘??
03/26 16:48, 8F

03/26 17:00, , 9F
#include <string> ?不是#include <string.h>嗎? ._.?
03/26 17:00, 9F

03/26 17:15, , 10F
啊抱歉...沒注意到是c++ Or2
03/26 17:15, 10F

03/26 17:17, , 11F
#include <string> 才是對的,string.h 是給 C 用的
03/26 17:17, 11F

03/26 18:08, , 12F
要說多餘的話,A.cpp跟main.cpp裡的#include<iostream>
03/26 18:08, 12F

03/26 18:08, , 13F
才是多餘的 orz
03/26 18:08, 13F
文章代碼(AID): #19op65kq (C_and_CPP)