#includeusing namespace std;class Circle{ double radius;public: Circle(double r) { radius = r; } double area() { return 2 * radius; }};class Cylinder{ Circle base; double height;public: Cylinder(double r, double h) : base(r), height(h) { } double volume() { return base.area() * height; }};//uniform initializer//Cylinder::Cylinder(double r, double h)// : base { r }, height { h }//{//}class Rectangle{ int width, height;public: Rectangle(); Rectangle(int, int); void set_values(int, int); int area(void) { return width * height; } ;};Rectangle::Rectangle(){ width = 5; height = 5;}Rectangle::Rectangle(int x, int y) : width(x), height(y){}//Rectangle::Rectangle(int a, int b)//{// width = a;// height = b;//}void Rectangle::set_values(int x, int y){ width = x; height = y;}int main(){ Rectangle rect(3, 4); int myarea = rect.area(); cout << myarea << endl;// Circle foo(10.0); // functional form Circle bar = 20.0; // assignment init. Circle baz { 30.0 }; // uniform init. Circle qux = { 40.0 }; // POD-like// cout << foo.area() << endl; cout << bar.area() << endl; cout << baz.area() << endl; cout << qux.area() << endl; Rectangle rectb; // default constructor called Rectangle rectc(); // function declaration (default constructor NOT called) Rectangle rectd { }; // default constructor called Cylinder foo(10, 20); cout << "foo's volume: " << foo.volume() << '\n'; Rectangle* foop; foop = ▭ cout << foop->area() << endl; delete foop; return 0;}
posted on 2018-01-27 17:44 阅读( ...) 评论( ...)