#include <iostream>
#include <cstdlib>
#include "test.h"
using namespace std;
int main(void)
{
myFirstClass firstObjClass(10,20,20,10);
cout << firstObjClass.show().rectangle.top.x << endl;
system("pause");
return 0;
}
typedef int (*ptr_to_func)(int);
struct point {
float x;
float y;
};
struct rectangle {
point top;
point bot;
};
class myFirstClass
{
private:
rectangle figure;
public:
myFirstClass(float x1=0.0, float y1=0.0, float x2=0.0, float y2=0.0);
~myFirstClass() { }
myFirstClass& show(void);
};
myFirstClass::myFirstClass(float x1, float y1, float x2, float y2)
{
figure.top.x = x1;
figure.top.y = y1;
figure.bot.x = x2;
figure.bot.y = y2;
}
myFirstClass& myFirstClass::show(void)
{
return *this;
}
C:\Users\Егор\Desktop>g++ -std=c++11 test.cpp
test.cpp: In function 'int main()':
test.cpp:11:31: error: 'class myFirstClass' has no member
cout << firstObjClass.show().rectangle.top.x << endl;
cout << firstObjClass.show().rectangle.top.x << endl;
rectangle figure
, а к типу struct rectangle;
, почему компилятор и ругается:'class myFirstClass' has no member rectangle
cout << firstObjClass.show().figure.top.x << endl;
figure
в вашем классе приватный. Доступ к нему вне класса запрещен.public:
rectangle figure;
rectangle GetRectangle() { // функция внутри класса myFirstClass
return figure;
}
// main()
cout << firstObjClass.show().GetRectangle().top.x << endl;