就这个程序而言,你的错误有两个,一是link有的是大写有的小写,前后不一,编译器不识别,二是List
#include
using namespace std;
template
struct LinkNode{
T data;
LinkNode
LinkNode(LinkNode
LinkNode(const T& item,LinkNode
{
data=item; Link=ptr;
}
};
template
class List{
public:
List(){first=new LinkNode
List(const T&x){first=new LinkNode
//List(List
~List(){makeEmpty();}
void makeEmpty();
LinkNode
bool Insert(int i,T&x);
bool Remove(int i,T&x);
void input();
void output();
protected:
LinkNode
};
template
void List
{
LinkNode
while (first->Link!=NULL)
{
q=first->Link;
first->Link=q->Link;
delete q;
}
}
template
LinkNode
{
if(i<0) return NULL;
LinkNode
while (current!=NULL&&k {
current=current->Link; k++;
}
return current;
}
template
bool List
{
LinkNode
if (current=NULL) return false;
LinkNode
if (newNode==NULL){cerr<<"存储分配错误!"<
current->Link=newNode;
return true;
}
template
bool List
{
LinkNode*current=Locate(i-1);
if (current==NULL ||current->Link==NULL) return false;
LinkNode
current->Link=del->Link;
x=del->data;
delete del;
return true;
}
template
void List
{
LinkNode
while (current!=NULL)
{
cout<
}
}
template
void List
{
LinkNode
while(current->data!=0)
{
cin>>current->data;
current=current->Link;
}
}
int main()
{
cout<<"请输入链表的元素(以0结束):";
List
List.input();
List.output();
return 0;
}
不过修改后运行时你会发现你的程序还有别的问题,应该是指针和内存方面的,再好好调试下吧
编译器错误 C2228
错误消息
“.identifier”的左侧必须有类/结构/联合
句点 (.) 左边的操作数不是类、结构或联合。
下面的示例生成 C2228:
// C2228.cpp
int i;
struct S {
public:
int member;
} s, *ps = &s;
int main() {
i.member = 0; // C2228 i is not a class type
ps.member = 0; // C2228 ps is a pointer to a structure
s.member = 0; // s is a structure type
ps->member = 0; // ps points to a structure S
}
如果在使用托管扩展时使用了错误的语法,则也将显示此错误。而在其他 Visual Studio 语言中,可以使用点运算符访问托管类的成员,在 C++ 中指向对象的指针意味着必须使用 -> 运算符访问该成员:
错误:String * myString = checkedListBox1->CheckedItems->Item[0].ToString();
正确:String * myString = checkedListBox1->CheckedItems->Item[0]->ToString();