帮我看一下这是什么问题?

chg2008 2005-01-29 01:47:37
编译是出现
c:\documents and settings\array_main.cpp(6) : error C2143: syntax error : missing ';' before 'PCH creation point'

但我找了好几遍,也没看到有遗漏","的
后面的'PCH creation point'是什么意思?
...全文
129 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengwei1984222 2005-02-01
  • 打赏
  • 举报
回复
看见没,.h文件类定义末尾没有加分号!!!!!!!!!!1
#ifndef ARRAY_H
#define ARRAY_H

#include <iostream.h>

class Array
{
....................
static int arrayCount; //实例化数组的个数
};//---------就这里《------

#endif
chg2008 2005-02-01
  • 打赏
  • 举报
回复
#ifndef ARRAY_H
#define ARRAY_H

#include <iostream.h>

class Array
{
friend ostream & operator<< (ostream &,const Array&);
friend istream & operator>> (istream &,Array &);

public:
Array (int arraySize = 10); //默认构造函数
Array (const Array &); //拷贝构造函数
~Array();
int getSize() const; //返回数组的大小
const Array &operator= (const Array&);//数组赋值
int operator== (const Array &) const; //比较数组的相等性
int &operator[] (int); //下标运算符
static getArrayCount(); //返回数组的个数
private:
int *ptr; //指向数组的第一个元素
int size; //数组的大小
static int arrayCount; //实例化数组的个数
}

#endif


//定义类Array的成员函数

#include <iostream.h>
#include <stdlib.h>
#include <assert.h>
#include "array.h"

//初始化文件作用域的静态数据成员及静态函数
int Array:: arrayCount = 0;
int Array:: getArrayCount() {return arrayCount;}

//类Array的默认构造函数
Array::Array(int arraySize)
{
++arrayCount;
size = arrayCount;
ptr = new int[size];
assert(ptr!=0);
for (int i=0;i<size;i++)
ptr[i] = 0;
}

//类Array的拷贝构造函数

Array::Array(const Array & a)
{
++arrayCount;
size = a.size;
ptr = new int[size];
assert(ptr!=0);
for(int i=0;i<size;i++)
ptr[i] = a.ptr[i];
}

//析构函数
Array::~Array()
{
--arrayCount; //对象计数减1
delete [] ptr; //回收分配给数组的内存空间;
}

//获取数组的大小
int Array::getSize() const
{
return size;
}
//重载下标运算符
int &Array::operator[] (int xiabiao)
{
//检测下标有没有错误
if (xiabiao<0||xiabiao>=size)
cout<<"下标错误!\n";
else
return ptr[xiabiao];
}
//判断两个数组时候相等,相等返回1,否则返回0
int Array::operator== (const Array &another) const
{
if(size!=another.size)
return 0; //数组的大小不等
for(int i=0;i<size;i++)
if(ptr[i]!=another.ptr[i])
return 0; //数组里有元素不相等
return 1; //数组相等
}

//重载赋值运算符
const Array &Array::operator= (const Array& another)
{
if (&another!=this) //检查是否是自我赋值
{
delete [] ptr; //回收内存空间
size = another.size;
ptr = new int[size];
assert(ptr!=0);
for(int i=0;i<size;i++)
ptr[i] = another.ptr[i];
}
return *this;
}

//重载输入输出运算符
istream &operator>> (istream &input,Array &a)
{
for (int i = 0;i<a.size;i++)
input>>a.ptr[i];
return input;
}

//重载输出运算符
ostream &operator<< (ostream &output,const Array &a)
{
for (int i = 0;i<a.size;i++)
{
if((i+1)&10==0) output<<"\n";
output<<a.ptr[i]<<" ";
}
return output;
}


//简单类array的测试

#include <iostream.h>
#include "array.h"

int main()
{
cout<<"没建对象之前arrayCount的值 =:"
<<Array::getArrayCount()<<'\n';
//建立对象数组并打印出来
Array array1(7),array2;
cout<<"建立对象数组arrayCount的值 =:"
<<Array::getArrayCount()<<endl;
//打印出来
cout<<"数组1 :"<<array1<<endl
<<"数组1元素的个数 ="<<array1.getSize();
cout<<"数组2 :"<<array2<<endl
<<"数组2元素的个数 ="<<array2.getSize();

//输入数组1
cout<<"\nInput 17个数(Integer):\n";
cin>>array1>>array2;
cout<<"输入之后两个数组的值:\n";
cout<<"数组1:"<<array1<<endl;
cout<<"数组2:"<<array2<<endl;
return 0;
}

这就是源程序
chg2008 2005-01-31
  • 打赏
  • 举报
回复
PCH没定义?是什么头文件
c_jj 2005-01-29
  • 打赏
  • 举报
回复
应该是PCH没定义造成的.PCH的定义在一个头文件里,这个头文件你没包含
cityvagrant 2005-01-29
  • 打赏
  • 举报
回复
应该是缺少一个分号,将代码贴上来看看。
Dong 2005-01-29
  • 打赏
  • 举报
回复
这其中好象有两个可能:
第一:在PCH 句子前面的前一句少了';'
第二:就是少了头文件,所以他不知道你声明的是什么样的类型,所以要求在类型和变量中间加';',不过加也是没用的,主要是要加入引用类型的头文件

64,663

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧