本文主要是介绍error C2143: syntax error : missing ';' before 'class-head',希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题:
关于error C2143: syntax error : missing ';' before '<class-head>' 这个错误及解决方法。
解释:
这句话的意思就是在类的前面少加了“;”。
错误代码:
#include <iostream>
using namespace std;
#define maxsize 100
typedef int Datetype
class sequenlist
{
private:
DateType data[maxsize];
int len;
public:
void initiate();
int length();
int insert(DateType x, int i);
int delet(int i);
int locate(DateType x);
DateType get(int i);
};
void sequenlist::initiate()
{
len = 0;
}
int sequenlist::length()
{
return len;
}
int sequenlist::insert(DateType x, int i)
{
int j;
if (len >= maxsize) {
cout << "overflow!\n";
return 0;
} else if ((i < 1) || (i > len + 1)) {
cout << "position is not correct!\n";
return 0;
} else {
for (j = len; j >= i; j--)
data[j] = data[j - 1];
len++;
return 1;
}
}
int sequenlist::delet(int i)
{
int j;
if ((i < 1) || (i > len)) {
cout << "position is not corrcet!\n";
return 0;
} else {
for (j = i; j < len; j++)
data[j - 1] = data[j];
len--;
return 1;
}
}
int sequenlist::locate(DateType x)
{
int j = 0;
while ((j < len) && (data[j] != x))
j++;
if (j < len)
return j + 1;
else
return 0;
}
DateType sequenlist::get(int i)
{
if ((i < 1) && (i > len))
cout << "position is not correct!\n";
else
return data[i - 1];
}
int main()
{
return 0;
}
改完后的代码:
#include <iostream>
using namespace std;
#define maxsize 100
typedef int DateType;
class sequenlist
{
private:
DateType data[maxsize];
int len;
public:
void initiate();
int length();
int insert(DateType x, int i);
int delet(int i);
int locate(DateType x);
DateType get(int i);
};
void sequenlist::initiate()
{
len = 0;
}
int sequenlist::length()
{
return len;
}
int sequenlist::insert(DateType x, int i)
{
int j;
if (len >= maxsize) {
cout << "overflow!\n";
return 0;
} else if ((i < 1) || (i > len + 1)) {
cout << "position is not correct!\n";
return 0;
} else {
for (j = len; j >= i; j--)
data[j] = data[j - 1];
len++;
return 1;
}
}
int sequenlist::delet(int i)
{
int j;
if ((i < 1) || (i > len)) {
cout << "position is not corrcet!\n";
return 0;
} else {
for (j = i; j < len; j++)
data[j - 1] = data[j];
len--;
return 1;
}
}
int sequenlist::locate(DateType x)
{
int j = 0;
while ((j < len) && (data[j] !=x) )
j++;
if (j < len)
return j + 1;
else
return 0;
}
DateType sequenlist::get(int i)
{
if ((i < 1) && (i > len))
cout << "position is not correct!\n";
else
return data[i - 1];
}
int main()
{
return 0;
}
后续:
好郁闷,我是看一本书的代码写的,typedef书上竟然没加分号,误导我,郁闷死了。
这篇关于error C2143: syntax error : missing ';' before 'class-head'的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!