您好,欢迎访问三七文档
对于初学C++的学生而言,最难的知识不是C++繁杂的语法,而是接触到类的学习后不知类的设计和写法如何规范,往往把一大堆函数或数据塞到一个class的两个大括号中就认为类搞定了,其实普通类的写法远不只如此,而是有着一定之规,学习者必须要从一开始就养成良好的设计和编写习惯才能在将来的学习中走的更快更远。下面是一个非常简单的Time类的写法,请注意规范和注释讲解://----------------------------------------------------------------//文件名:time.h//功能:声明Time类//----------------------------------------------------------------#ifndefTIME_H#defineTIME_HclassTime{public://所有参数都带有默认值的构造函数,同时也是默认构造函数Time(intaHour=0,intaMin=0,intaSec=0);//重新设置小时voidsetHour(intaHour);//重新设置分钟voidsetMin(intaMin);//重新设置秒voidsetSec(intaSec);//获取小时,不是打印,而是该函数的返回值是当前m_iHour的值intgetHour();//获取分钟,功能同getHour函数intgetMin();//获取秒,功能同getSec函数intgetSec();//显示时间,这个函数是演示之用,一般在设计类时不会包含含有cout,cin的函数voiddisplay();private:intm_iHour;intm_iMin;intm_iSec;};#endif//----------------------------------------------------------------------//文件名:time.cpp//功能:Time类的定义//----------------------------------------------------------------------#includeiostreamusingstd::cout;usingstd::endl;#includetime.h//用初始化列表初始化类中数据成员,速度快,效率高Time::Time(intaHour,intaMin,intaSec):m_iHour(aHour),m_iMin(aMin),m_iSec(aSec){}//注释略voidTime::setHour(intaHour){m_iHour=aHour;}//注释略voidTime::setMin(intaMin){m_iMin=aMin;}//注释略voidTime::setSec(intaSec){m_iSec=aSec;}//注释略intTime::getHour(){returnm_iHour;}//注释略intTime::getMin(){returnm_iMin;}//注释略intTime::getSec(){returnm_iSec;}//注释略voidTime::display(){coutm_iHour:m_iMin:m_iSecendl;}//------------------------------------------------------------------------//文件名:demo.cpp//功能:演示Time类的使用方法//------------------------------------------------------------------------#includeiostream#includetime.hintmain(){Timet1;t1.setHour(3);t1.setMin(40);t1.setSec(30);t1.display();////////////////////////Timet2(7,30,20);coutt2.getHour():t2.getMin():t2.getSec()endl;system(pause);return0;}类中数据部分放到private限定符下,类的对外接口函数(这里指广义的接口,指外部可以访问的函数)放在public下面,当然不是所有的成员函数都必须放在public下面,这要按照类的设计意图来写,这个我们暂时不管它。对于一个类中的数据来说,修改和获取数据成员一般都使用getXXX和setXXX函数,这里再次强调不要在getXXX函数里直接使用cout输出数据,而是要使用return将数据作为getXXX函数的返回值。至于类的使用方法,我已经举了两个使用的例子,请认真阅读示例代码即可。
本文标题:普通C++类的写法
链接地址:https://www.777doc.com/doc-4815447 .html