storing multiple values of x and y

i am suppose to use the values of x and y to calculate area and etc, but how to i store multiple values of the same variable x and y into the same element in my vector without creating x1,x2,x3,...? Please help



display.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//ShapeTwoD sh;
void print(vector<unique_ptr<ShapeTwoD>>& newCoords)
{
	for (int i=0;i<newCoords.size();i++)
	{
		cout<<(*newCoords[i]).getX()<<" , "<<(*newCoords[i]).getY()<<(*newCoords[i]).getName();
	}
}

void input(vector<unique_ptr<ShapeTwoD>>& newCoords)
{
	
	
	int x,y;
	string s;
	bool b = true;
		cout<<"name?"<<endl;
		getline(cin,s);
		cout<<"Please enter value of x"<<endl;
		cin>>x;
		cout<<"Please enter value of y"<<endl;
		cin>>y;
	    
		//Square sq(s,b,x,y);
		newCoords.emplace_back(new Square(s,b,x,y));
		/*cout<<"name?"<<endl;
		
		getline(cin,s);
		cout<<"Please enter value of x"<<endl;
		cin>>x;
		cout<<"Please enter value of y"<<endl;
		cin>>y;
		
		//Square sq(s,b,x,y);
		newCoords.emplace_back(new Rectangle(s,b,x,y));
	*/
}
	


int main(int argc, char** argv) {
	//ShapeTwoD sh; 
	vector<unique_ptr<ShapeTwoD>>shape;
	input(shape);
	print(shape);
	return 0;
}


ShapeTwoD.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#ifndef SHAPETWOD_H
#define SHAPETWOD_H
#include <string>
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <utility>
#include <memory>

using namespace std; 

class ShapeTwoD {
	protected:
	string name;
	bool containsWarpspace;
	int x,y;
		
	
			
	public:
		ShapeTwoD();
		ShapeTwoD(string,bool,int,int);
		void setName(string);
		void setContainsWarpSpace(bool);
		void setX(int);
		void setY(int);
		int getX();
		int getY();
		string getName();
		bool getContainsWarpSpace();
		virtual double computeArea();
		virtual bool isPointInShape(int,int);
		virtual bool isPointOnShape(int,int);
		virtual string toString();
		
		
		
};

class Cross:public ShapeTwoD{

	public:
	Cross(string ,bool,int,int);
	double computeArea(); 
	
};

class Rectangle:public ShapeTwoD{
	public:
	Rectangle(string,bool,int,int);
	double computeArea();
};
class Square:public ShapeTwoD{

	public:
	Square(string,bool,int,int);
	double computeArea();
};
 
#endif 


ShapeTwoD.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include "ShapeTwoD.h"



ShapeTwoD::ShapeTwoD()
{

}
ShapeTwoD::ShapeTwoD(string sName,bool contain, int coordX,int coordY)
{
	setName(sName);
	setContainsWarpSpace(contain);
	setX(coordX);
	setY(coordY);
	
}
Square::Square(string sName,bool contain,int coordX, int coordY):ShapeTwoD(sName,contain,coordX,coordY)
{

}

Rectangle::Rectangle(string sName,bool contain,int coordX, int coordY):ShapeTwoD(sName,contain,coordX,coordY)
{
	
}

Cross::Cross(string sName,bool contain,int coordX, int coordY):ShapeTwoD(sName,contain,coordX,coordY)
{

}

double ShapeTwoD::computeArea()
{
	cout<<"No area computation defined"<<endl;
}

double Square::computeArea()
{
	//double area;
	
	//area = ((((x1-x2)^2+(y1-y2)^2)^0.5)+(((x1-x4)^2)+(((y1-y4)^2)^0.5)));
}

double Rectangle::computeArea()
{
	//double area;
	
	//area = ((((x1-x2)^2+(y1-y2)^2)^0.5)+(((x1-x4)^2)+(((y1-y4)^2)^0.5)));
}

double Cross::computeArea()
{
	
}



bool ShapeTwoD::isPointInShape(int coordx,int coordy)
{
	
}

bool ShapeTwoD::isPointOnShape(int coordx,int coordy)
{
	
}



void ShapeTwoD::setName(string sName)
{
	name=sName;
}
void ShapeTwoD::setContainsWarpSpace(bool contain)
{
	containsWarpspace=contain;
}
void ShapeTwoD::setX(int coordX)
{
	x=coordX;
}
void ShapeTwoD::setY(int coordY)
{
	y=coordY;
}



bool ShapeTwoD::getContainsWarpSpace()
{
	return containsWarpspace;
}

string ShapeTwoD::getName()
{
	return name;
}
int ShapeTwoD::getX()
{
	return x;
}
int ShapeTwoD::getY()
{
	return y;
}


string ShapeTwoD::toString()
{
	
}
Not really sure what you mean by
multiple values of the same variable x and y into the same element


This is a straightforward place to use an array (if the maximum size is known) or other expansible container(s) like valarray or a vector. No reason these shouldn't be members of your ShapeTwoD class.
Topic archived. No new replies allowed.