问题描述
- 如何用构造函数来初始化????
-
#include<iostream>using namespace std;class Date{private: int year month day;public: Date(int y int m int d) { year = y; month = m; day = d; }};class Time{private: int hour minute second;public: Time(int hour1int minute1int second1) { hour = hour1; minute = minute1; second = second1; }};class DateTime{private: Date date; // 数据成员为Date类的对象 Time time; // 数据成员为Time类的对象public: DateTime(int y int m int d) : date(y m d):time(ymd) //这里错了怎么弄 { cout << this << ""......"" << endl; }};int main(){ DateTime dt(2014 3 24); return 0;}
解决方案
DateTime(int y int m int d) : date(y m d):time(ymd)
第二个冒号改为逗号
解决方案二:
嗯嗯,改了,行了,谢谢
解决方案三:
#include<iostream>using namespace std;class Date{private: int year month day;public: Date(int y int m int d) { year = y; month = m; day = d; }};class Time{private: int hour minute second;public: Time(int hour1 int minute1 int second1) { hour = hour1; minute = minute1; second = second1; }};class DateTime{ //说明: // 如果数据成员是类的对象的话,那么只能在定义时初始化,或者另外定义初始化函数来做。 // 最好的办法是将数据成员定义为类的对象的指针,那么直接可以用new来初始化。private: Date *date; // 数据成员为Date类的对象 Time *time; // 数据成员为Time类的对象public: DateTime(int y int m int d) { date = new Date(y m d); time = new Time(0 0 0); cout << this << ""......"" << endl; } ~DateTime() { delete date; delete time; }};int main(){ DateTime dt(2014 3 24); return 0;}
时间: 2024-09-08 05:50:44