這裏是我的代碼,即時嘗試做我自己的字符串類,但我卡在這裏...我的老師不好:/我有這麼多的錯誤,但我想知道爲什麼這個錯誤出現 「無效preprocesing指令#ifndef_CADENA_H」錯誤,而編程使用標題的C++
#include <iostream>
#include <cstdlib>
#ifndef_CADENA_H
#define_CADENA_H
class cadena {
\t \t char* Ptrcad;
\t \t int tam;
\t \t
\t \t public :
\t \t \t
\t \t cadena(void);
\t \t char* get(void);
\t \t void set(*char**)
\t \t int longitud;
\t \t ~ Cadena (void);
\t };
\t Cadena :: Cadena(){
\t \t Ptrcad = NULL;
\t \t tam = 0;
\t }
\t char* Cadena :: get(){
\t \t return Ptrcad;
\t }
\t void Cadena :: set(const char* x){
\t \t while(*(x+tam)!='\0'){
\t \t \t tam++;
\t \t }
\t \t Ptrcad = new char (tam);
\t \t for(int i=0;i<tam;i++){
\t \t \t *(Ptrcad +i)= *(x+i);
\t \t }
\t }
int Cadena :: longitud(){
\t return tam;
}
\t Cadena :: ~ Cadena(){
\t \t delete [] Ptrcad;
\t \t tam =0;
\t }
你需要在'#ifndef'和'_CADENA_H'之間有一個空格(類似的用#define ')。你也應該避免以'_'開頭的名字;他們基本上是爲執行而保留的 - 這意味着你可能會遇到問題,這將是你的錯,而不是別人的錯。 – 2014-10-12 04:48:07
1)切換到'#ifndef _CADENA_H'(確保有空格),2)也切換到'#define _CADENA_H'(同樣的問題),3)確保你有一個'#endif',後跟一個空行,在你的頭文件的末尾。 – FoggyDay 2014-10-12 04:50:30
@FoggyDay:'#endif'後面的空行不是必需的。 – 2014-10-12 04:56:21