gpt4 book ai didi

c++ - 没有重载函数的实例与参数列表匹配。

转载 作者:行者123 更新时间:2023-12-03 06:55:34 25 4
gpt4 key购买 nike

我正在为一个类工作,但是不断出现错误:没有重载函数的实例与参数列表匹配。它引用了我的String类。我想做的是在不使用字符串类的情况下创建Copy,Concat和Count函数。任何帮助将不胜感激。

#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;
}

最佳答案

看来您的CopyConcat函数都带有两个参数,但是您都将它们都传递给了一个参数。如果要将它们复制到String对象,则代码应类似于:

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

关于c++ - 没有重载函数的实例与参数列表匹配。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36784443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com