2016-04-22 72 views
0

我正在爲類的項目工作,但不斷收到錯誤:沒有重載函數的實例匹配參數列表。它引用我的String類。我想要做的是創建一個複製,Concat和計數函數與出使用字符串類。任何幫助將不勝感激。沒有重載函數的實例匹配參數列表。

#define _CRT_SECURE_NO_WARNINGS 
#include <iostream> 
#include <string> 

using namespace std; 

class String 
{ 
private: 
char str[100]; 
char cpy[100]; 
public: 

static const char NULLCHAR = '\0'; 

String() 
{ 
    str[0] = NULLCHAR; 
    cpy[0] = NULLCHAR; 
} 

String(char* orig, char* cpy) 
{ 
    Copy(orig, cpy); 
} 

void Display() 
{ 
    cout << str << endl; 
} 

void Copy(char* orig, char* dest) 
{ 

    while (*orig != '\0') { 
     *dest++ = *orig++; 
    } 
    *dest = '\0'; 



} 

void Copy(String& orig, String& dest) 
{ 
    Copy(orig.str, dest.cpy); 
} 

void Concat(char* orig, char* cpy) 
{ 
    while (*orig) 
     orig++; 

    while (*cpy) 
    { 
     *orig = *cpy; 
     cpy++; 
     orig++; 
    } 
    *orig = '\0'; 

} 

void Concat(String& orig, String& cpy) 
{ 
    Concat(orig.str, cpy.cpy); 
} 

int Length(char* orig) 
{ 
    int c = 0; 
    while (*orig != '\0') 
    { 
     c++; 
     *orig++; 
    } 
    printf("Length of string is=%d\n", c); 
    return(c); 

} 
}; 

int main() 
{ 
String s; 

s.Copy("Hello"); 
s.Display(); 
s.Concat(" there"); 
s.Display(); 

String s1 = "Howdy"; 
String s2 = " there"; 
String s3; 
String s4("This String built by constructor"); 
s3.Copy(s1); 
s3.Display(); 
s3.Concat(s2); 
s3.Display(); 
s4.Display(); 


system("pause"); 
return 0; 
} 
+0

參數個數與'Copy'和'Concat'不匹配。 – songyuanyao

回答

0

它看起來像你的CopyConcat功能各取兩個參數,但你通過他們倆一個參數。如果你想將它們複製到一個String對象,你的代碼應該看起來更像是:

String Copy(char* orig) 
{ 
    // Same copy logic you have, 
    // except copy into "*this" 
} 
+0

你介意擴大「* this」一點。我試圖做出改變,並得到一個錯誤,說「表達式必須是一個可修改的左值。 – K455306

+0

谷歌你的錯誤?最好的我能想到的是這個http://stackoverflow.com/questions/6008733/expression-must-是一個可修改的l值 – Dagrooms

0

由於錯誤消息說,沒有版本的構造函數的String類,需要一個單一的參數。你有一個默認的構造函數和一個需要兩個參數的構造函數。

您需要定義一個接受一個參數,並初始化STR

0

字符串S4(「此字符串的構造建」); 此聲明需要構造函數

String(char *);

+0

和String s1 =「Howdy」; String s2 =「there」; 還需要上面的構造函數,一旦你提供了,錯誤應該被消除。 – shiningstarpxx

相關問題