這是一類,我在2010年的Visual C++速成工作頭:矢量<int> - 缺少類型說明
/* custom class header to communicate with LynxMotion robot arm */
#include <vector>
using namespace System;
using namespace System::IO::Ports;
public ref class LynxRobotArm
{
public:
LynxRobotArm();
~LynxRobotArm();
void connectToSerialPort(String^ portName, int baudRate);
void disconnectFromSerialPort();
void setCurrentPosition(int channel, int position);
int getCurrentPosition(int channel);
void moveToPosition(int channel, int position);
private:
void initConnection();
SerialPort^ serialPort;
array<String^> ^serialPortNames;
String^ portName;
int baudRate;
vector<int> currentPosition;
};
一切工作正常,直到我改變了最後一行int currentPosition
到vector<int> currentPosition
。如果我現在嘗試編譯/調試,我得到這些錯誤消息:
error C2143: syntax error : missing ';' before '<'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2238: unexpected token(s) preceding ';'
我查MSDN對這些錯誤代碼的一些更多的信息,但我無法弄清楚什麼是錯的代碼。有任何想法嗎?
這可能是不好的做法,但我知道在我的大學裏他們鼓勵使用'using namespace std;'。我有時會因爲編程教學而感到震驚。 – Drise
@Drise:在許多其他文件包含的頭文件中(以及使用名稱空間標準擴展名)使用它是不好的做法。 – LihO
我想說你只能用'namespace std;'來搞砸你的實現文件(我認爲它沒有太多,如果有的話),但是如果你開始把它們放到頭文件中,很快就會變得非常糟糕。 –