CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

friend不能访问私有变量的代码

楼主liuliqun(莫名)2002-03-27 19:56:54 在 C/C++ / C语言 提问

/////this   is   the   head   file======    
  //==============================    
  using   namespace   std;    
   
  class   Person        
  {    
                  friend   ostream&   operator<<(ostream&,   const   Person&);    
  public:    
                  virtual   void   print()const;    
                  void   set_birthday(const   string&);    
                  string   get_birthday()const;    
                  void   set_name(const   string&);    
                  Person(const   string&,const   string&);    
                  string   get_name()   const;    
                  Person();    
                  virtual   ~Person();    
   
  private:    
                  string   m_birthday;    
                  string   m_name;    
  };    
  ///=====================head   file   end    
   
  //================this   is   the   impletation    
   
  //   Person.cpp:   implementation   of   the   Person   class.    
  //    
  //////////////////////////////////////////////////////////////////////    
  #include   <iostream>    
  #include   <iomanip>    
  #include   "Person.h"    
   
  //////////////////////////////////////////////////////////////////////    
  //   Construction/Destruction    
  //////////////////////////////////////////////////////////////////////    
   
  Person::Person()    
  {    
          m_name="";    
                  m_birthday="";    
  }    
   
  Person::~Person()    
  {    
   
  }    
   
  ostream&   operator   <<   (ostream&   os,   const   Person&   person)    
  {    
                  os<<setiosflags(ios::left);    
                  os<<"name:"<<setw(10)    
                      <<person.m_name;    
                  os<<"birthday:"<<setw(10)    
                      <<person.m_birthday<<endl;    
   
                  return   os;    
  }    
   
  string   Person::get_name()   const    
  {    
          return   m_name;    
  }    
   
  Person::Person(const   string&   name,   const   string&   birthday)    
  {      
                  m_name=name;    
                  m_birthday=birthday;    
  }    
   
  void   Person::set_name(const   string&   name)    
  {    
          m_name=name;    
  }    
   
  string   Person::get_birthday()   const    
  {    
            return   m_birthday;    
  }    
   
  void   Person::set_birthday(const   string&   birthday)    
  {    
            m_birthday=birthday;    
  }    
   
  void   Person::print()   const    
  {    
            cout<<setiosflags(ios::left);    
                    cout<<"name:"<<setw(10)    
                            <<get_name();    
                    cout<<"birthday:"<<setw(10)    
                            <<get_birthday()<<endl;    
   
  }    
  //===============end 问题点数:20、回复次数:5Top

1 楼bianfu(逍遥随风)回复于 2002-03-27 20:43:14 得分 0

请大家踊跃发言!!!Top

2 楼wkoji(杨威利)回复于 2002-03-27 20:47:39 得分 0

我觉得应该把friend函数设置成public的Top

3 楼wolfboy(峰鸟)回复于 2002-03-27 20:47:42 得分 10

看起来很符合ANSI     C++语法,也许是VC什么参数没打开Top

4 楼cstpjl(BCB老虎)回复于 2002-03-28 15:18:52 得分 0

friend   应该在PUBLIC里吧。Top

5 楼fangrk(加把油,伙计!)回复于 2002-03-28 15:33:37 得分 10

friend的位置无关,只要在class里面就可以了,不一定要public  
  把#include   <iostream>和#include   <iomanip>移动到最前面。  
  删除#include   "Person.h"    
  我用bcc编译通过。  
   
   
  Top

相关问题

  • JSP访问JAVABEAN中的私有变量难道有错吗?
  • 为啥我的友元函数不能访问私有变量
  • 求教:友元访问模板类私有变量
  • 关于私有变量的访问问题?
  • 请问FABC:TNodifyEvent是一个私有变量,然后代码中用到FABC(self);什么意思啊
  • 如何通过WebBrowser访问html页面中脚本代码定义的变量?
  • 怎样才能使一段代码在执行时互斥,还有怎样锁定一个变量的访问?
  • 可私有变量可以吗?
  • 一个类COperation中有指针类型的变量。使用COperation* pOperation实例化后,怎么访问pOperation的指针变量,高手帮忙写几行代码?
  • 关于变量访问

关键词

  • person
  • include

得分解答快速导航

  • 帖主:liuliqun
  • wolfboy
  • fangrk

相关链接

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

广告也精彩

反馈

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