CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

关于抽象容器类的问题!!!!

楼主zhangfeigreat(大鹏)2004-09-03 19:33:34 在 C/C++ / C++ 语言 提问

我在.NET编译环境中自己设计了一个类,中间使用了抽象容器类,但是老是编译不通过,代码如下,很简单,希望哪位大虾能指出其中的错误,本人将不胜感激!!!  
   
  头文件如下:  
  #pragma   once  
  #include   <vector>  
   
  class   CMolar  
  {  
  public:  
  CMolar(void);  
  ~CMolar(void);  
  protected:  
  //磨牙所在的近乎圆形的区域  
  CArray<CPoint,CPoint>   m_EdgePoints;  
   
  //磨牙的牙根的数目  
  int   m_nNumOfMolarFang;  
   
  public:  
  //设置磨牙所在的区域  
  void   SetMolarArea(const   vector<int>   &EdgePoints);  
   
  //设置磨牙的牙根数目  
  inline   void   SetMolarNum(int   nNumOfMolarFang)  
  {  
  m_nNumOfMolarFang   =   nNumOfMolarFang;  
  }  
   
  //取得牙根的牙根数目    
  inline   int   GetMolarNum()  
  {  
  return   m_nNumOfMolarFang;  
  }  
   
  void   GetMolarArea();  
   
  };  
   
  .CPP文件如下  
   
  #include   "StdAfx.h"  
  #include   ".\molar.h"  
   
   
  CMolar::CMolar(void)  
  {  
   
  }  
   
  CMolar::~CMolar(void)  
  {  
   
  }  
   
   
  void   CMolar::SetMolarArea(const   vector<   CPoint   >   &EdgePoints   )  
  {  
        //把所有外围点清楚干净  
  m_EdgePoints.RemoveAll();  
   
  for(int   i   =   0;   i   <   EdgePoints.size();   i++)  
  {  
  m_EdgePoints.Add(EdgePoints[i]);  
  }  
   
  }  
   
   
  vector<   CPoint   >   CMolar::GetMolarArea()  
  {  
  vector<   int   >   edgePoints;  
   
  for(int   i   =   0;   i   <   m_EdgePoints.GetSize();   i++)  
  {  
  EdgePoints.push_back(EdgePoints[i]);  
  }  
  return   EdgePoints;  
   
  }  
   
  编译错误如下:  
  (1)d:\Program   Files\Microsoft   Visual   Studio\MyTestImage1\Molar.cpp(29):   error   C2039:   'GetMolarArea'   :   is   not   a   member   of   'CMolar'  
   
  (2)d:\Program   Files\Microsoft   Visual   Studio\MyTestImage1\Molar.cpp(21):   error   C2065:   'EdgePoints'   :   undeclared   identifier  
   
  (3)d:\Program   Files\Microsoft   Visual   Studio\MyTestImage1\Molar.h(18):   error   C2143:   syntax   error   :   missing   ','   before   '<'  
   
  (4)d:\Program   Files\Microsoft   Visual   Studio\MyTestImage1\Molar.cpp(16):   error   C2143:   syntax   error   :   missing   ','   before   '<'  
   
  (5)d:\Program   Files\Microsoft   Visual   Studio\MyTestImage1\Molar.cpp(30):   error   C2143:   syntax   error   :   missing   ';'   before   '{'  
   
  (6)d:\Program   Files\Microsoft   Visual   Studio\MyTestImage1\Molar.h(32):   error   C2143:   syntax   error   :   missing   ';'   before   '<'  
   
  (7)d:\Program   Files\Microsoft   Visual   Studio\MyTestImage1\Molar.cpp(29):   error   C2143:   syntax   error   :   missing   ';'   before   '<'  
   
  (8)d:\Program   Files\Microsoft   Visual   Studio\MyTestImage1\Molar.cpp(21):   error   C2228:   left   of   '.size'   must   have   class/struct/union   type  
   
  (9)d:\Program   Files\Microsoft   Visual   Studio\MyTestImage1\Molar.h(32):   error   C2238:   unexpected   token(s)   preceding   ';'  
   
  (10)d:\Program   Files\Microsoft   Visual   Studio\MyTestImage1\Molar.cpp(30):   error   C2447:   '{'   :   missing   function   header   (old-style   formal   list?)  
   
  (11)d:\Program   Files\Microsoft   Visual   Studio\MyTestImage1\Molar.h(32):   error   C2501:   'CMolar::vector'   :   missing   storage-class   or   type   specifiers  
   
  (12)d:\Program   Files\Microsoft   Visual   Studio\MyTestImage1\Molar.cpp(29):   error   C2501:   'vector'   :   missing   storage-class   or   type   specifiers  
   
  (13)d:\Program   Files\Microsoft   Visual   Studio\MyTestImage1\Molar.cpp(23):   error   C3861:   'EdgePoints':   identifier   not   found,   even   with   argument-dependent   lookup  
   
   
  不知道问题出在哪里,希望高手予以指教!!!  
  问题点数:20、回复次数:6Top

1 楼jp1984(mathfrog)回复于 2004-09-03 19:40:49 得分 8

没看完。   。但是     要加上  
    using   namespace   std;Top

2 楼zhangfeigreat(大鹏)回复于 2004-09-03 19:56:44 得分 0

在哪里加呢?  
  我不太清楚!!  
  我看了以下   C++Primer里面也没有说要加using   namespace   std  
  请指教!!!Top

3 楼ntxs(别人加薪我加班,数钱数到心发酸T_T)回复于 2004-09-04 03:52:40 得分 8

那就证明你看书不用心   很多地方它不加是因为他老早就说过了必须得加所以偷懒  
   
  #pragma   once  
  #include   <vector>  
  using   namespace   std;Top

4 楼zhangfeigreat(大鹏)回复于 2004-09-04 10:32:01 得分 0

这个问题我已经解决了,谢谢你了哈!!!  
  对了,再问你一个问题啊!  
  我又在这个类里面加了一个函数,其函数体如下:  
   
  BOOL   AreaSelfDevelop(CPoint   SeedPoint)  
  {  
  CRgn   MolarRgn;  
   
  int   nNumofPoints   =   m_EdgePoints.GetSize();  
   
  LPPOINT   lpMolarPoints   =   new   CPoint[MAXMOLAREDGEPOINTS];  
   
  MolarRgn.CreatePolygonRgn(lpMolarPoints,nNumofPoints,ALTERNATE);  
   
  return   TRUE;  
  }  
   
  但是老是出现编译错误,错误如下:  
   
  (1)d:\Program   Files\Microsoft   Visual   Studio\MyTestImage1\Molar.cpp(48):   error   C2065:   'm_EdgePoints'   :   undeclared   identifier  
   
  (2)d:\Program   Files\Microsoft   Visual   Studio\MyTestImage1\Molar.cpp(48):   error   C2228:   left   of   '.GetSize'   must   have   class/struct/union   type  
   
  m_EdgePoints这个成员变量我已经在类里面声明了啊,为什么会出现第一个错误呢?  
   
  请大虾予以指教!!谢谢!!!Top

5 楼ntxs(别人加薪我加班,数钱数到心发酸T_T)回复于 2004-09-04 15:35:58 得分 4

'm_EdgePoints'   是protected   只能在函数成员中被调用  
   
  BOOL   CMolar   ::   AreaSelfDevelop(CPoint   SeedPoint)  
  Top

6 楼zhangfeigreat(大鹏)回复于 2004-09-04 18:51:02 得分 0

谢谢了哈.  
  我真是太粗心了,连这都给忘了  
  以后要注意了啊,对了怎么把分数给你啊  
  !!!Top

相关问题

  • STL容器怎么不能包容抽象类?
  • 抽象类
  • java抽象类
  • 谁有自己修改过,编译已经通过的c++primer 第六章抽象容器类型 的例程? 我下的例程编译不通。
  • 容器类小问题?
  • 初看《c++ primer》,好多不懂,问下第六章关于抽象容器的!!!!!!
  • 如何使用抽象类?
  • 虚基类和抽象类问题!!
  • 关于类类型和抽象工厂
  • 容器类序列化的问题?

关键词

  • 函数
  • 编译
  • cpp
  • vector
  • cmolar
  • edgepoints
  • nnumofmolarfang
  • molar
  • 牙根
  • 磨牙

得分解答快速导航

  • 帖主:zhangfeigreat
  • jp1984
  • ntxs
  • ntxs

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo