.cpp文件在链表代码
#include "StdAfx.h"
#include "LinkX.h"
#include<iostream>
#include<string.h>
using namespace std;
LinkX::LinkX(int pid,char *pname)
{
id=pid;
strcpy(name,pname);
next=null;
}
void LinkX::displayLink()
{
cout<<id<<endl;
cout<<name<<endl;
}
上面的代码中的错误获得误差:
Error 3 error C2511: 'LinkX::LinkX(int,char *)' : overloaded member function not found in 'LinkX'
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
LinkX *L1=new LinkX(10,"Charvi");
LinkX *L2=new LinkX(20,"Vin");
L1->next=L2;
delete L1;
delete L2;
}
};
这段代码获得错误:
Error 1 :error C2664: 'LinkX::LinkX(int,char)' : cannot convert parameter 2 from 'const char [7]' to 'char' Error 2 :error C2664: 'LinkX::LinkX(int,char)' : cannot convert parameter 2 from 'const char [4]' to 'char'
什么这些错误是什么意思?
我该如何纠正它们?
这些代码是用visual studio编写的。
我可以用你的帮助解决第一个错误,谢谢!但是我没有完全解释第二个错误,你能否进一步解释它? – Char
我解决了前两个错误,但我仍然得到这个错误错误错误C2511:'LinkX :: LinkX(int,char * [])':未找到'LinkX'中的重载成员函数 – Char
在C++中,一个变量可以是可变的或不变的。如果使用'const'关键字标记变量,则该变量是常量。 另一方面,硬编码的vaues总是常量,比如'42'或''foobar'''。 'char *'是一个非常量'char'内存的指针。这意味着,使用这个指针,你应该能够修改内存。 但是你的硬编码值“Charvi”是不变的,所以编译器考虑一个'const char *'指针来保护尖的内存。 所以你的常量值和你的构造函数之间有一个冲突,它要求一个非常量的指针。 –