| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1259 人关注过本帖
标题:请教有关类的声明与实现问题
取消只看楼主 加入收藏
lwf902
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-11-18
收藏
 问题点数:0 回复次数:4 
请教有关类的声明与实现问题
class Clock
{
public:
    Clock(int NH=0,int NM=0,int NS=0){H=NH;M=NM;S=NS;}
    void ST() {cout<<H<<":"<<M<<":"<<S<<endl;}    void operator++();
    void operator++(int);
private:
    int H,M,S;
};
请问void ST()(红色部分)为什么在类内定义时就是正确的,而在类外定义则出错?
搜索更多相关主题的帖子: 声明 
2008-11-23 18:36
lwf902
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-11-18
收藏
得分:0 
class Clock
{
public:
    Clock(int NH=0,int NM=0,int NS=0){H=NH;M=NM;S=NS;}
    void ST(){cout<<H<<":"<<M<<":"<<S<<endl;}
    void operator++();
    void operator++(int);
private:
    int H,M,S;
};
抱歉,上面写的东西有点乱,我的意思是为什么void ST()这个成员函数在类内实现时程序就可运行,而有类外实现则出错.
2008-11-23 18:39
lwf902
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-11-18
收藏
得分:0 
不用麻烦各位了,我找到了问题的答案,是我自己的疏忽,谢谢曾关注过本帖的人
2008-11-23 19:34
lwf902
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-11-18
收藏
得分:0 
回复 第3楼 asd6791868 的帖子
都正确
2008-11-23 19:36
lwf902
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-11-18
收藏
得分:0 
回复 第6楼 hitcolder 的帖子
谢谢你的关注与答复,问题我已解决.我练习的主要是一个运算符重载的程序的一部分.
其实类外类内实现都可,只是出了一点小问题而已.完整代码如下.
#include "stdafx.h"
#include<iostream>
using namespace std;
class Clock
{public:
    Clock(int NH=0,int NM=0,int NS=0){H=NH;M=NM;S=NS;}
    void ST(){cout<<H<<":"<<M<<":"<<S<<endl;}    //ST表示ShowTime,这句可
    //在类外实现.void Clock::ST(){cout<<H<<":"<<M<<":"<<S<<endl;}   
         void operator++();                  
    void operator++(int);
private:
    int H,M,S;
};

//void ST()
//{cout<<H<<":"<<M<<":"<<S<<endl;}

void Clock::operator ++()
{S++;
  if(S>=60)
   {S=S-60;
    M++;
       if(M>=60)
       {M=M-60;
           H++;
           H=H%24;
       }
    }
cout<<"++Clock;";
}

void Clock::operator ++(int)
{S++;
  if(S>=60)
   {S=S-60;
    M++;
       if(M>=60)
       {M=M-60;
           H++;
           H=H%24;
       }
    }
cout<<"++Clock++;";
}

int _tmain(int argc, _TCHAR* argv[])
{Clock myClock(23,59,59);
cout<<"First time output:";
myClock.ST();
myClock++;
myClock.ST();
++myClock;
myClock.ST();
    return 0;
}
2008-11-23 21:30
快速回复:请教有关类的声明与实现问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024447 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved