注册 登录
编程论坛 C++教室

类的访问问题

wxm198427 发布于 2008-10-24 15:30, 538 次点击
有以下一段程序,大家可能见过,
#include <iostream>
using namespace std;
class Time
 {public:                    //成员改为公用的
    int hour;
    int minute;
    int sec;
  };
Time t;
void set_time(void)          //在main函数之前定义
 {
  cin>>t.hour;
  cin>>t.minute;
  cin>>t.sec;
 }
 
void show_time(void)         //在main函数之前定义
 {
  cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;
 }

int main()
{set_time();
 show_time();
 return 0;
}
上面的程序是正确的,我就有疑问:
第一:set_time show_time在上面都没有定义为类的成员函数,为什么能被外部函数调用,这个是因为类成员声明为公用的,但是还为什么要加上t.hour,t.minute.t.sec呢??为什么还要通过对象调用呢?怎么不可以是直接
void set_time(void)
{cin>>hour;
cin>>minute;
cin>>sec;}
show_time雷同,还有为什么要set_time(void),不可以是set_time()吗?请各位大虾帮我解释………………谢谢!!
2 回复
#2
newyj2008-10-24 16:19
因为类声明是不分配空间的
只有在定义类对象的时候才 实例化
所以 只有用 类对象才能引用 类的成员 否则 程序并不知道 hour,minute 都是什么
#3
wxm1984272008-10-24 16:33
噢,谢谢
1