Скачиваний:
9
Добавлен:
01.05.2014
Размер:
1.9 Кб
Скачать
#include "stdafx.h"
#include "TextInTriangle.h"
#include "Text.h"
#include "Triangle.h"

TextInTriangle::TextInTriangle(): id(++total){
	count++;
	cout << "create TextInTriangle#" << id << endl;
}


TextInTriangle::TextInTriangle(Triangle* triangle, string text): Text(text), Triangle(triangle), id(++total){
	count++;
	cout << "create TextInTriangle#" << id << endl;
}

TextInTriangle::TextInTriangle(Point* p1, Point* p2, Point* p3, string text): Text(text), Triangle(p1, p2, p3), id(++total){
	count++;
	cout << "create TextInTriangle#" << id << endl;
}

TextInTriangle::TextInTriangle(const TextInTriangle* o): Text(o), Triangle(o), id(++total){
	count++;
	cout << "create TextInTriangle#" << id << " via cc" << endl;

}

TextInTriangle::TextInTriangle(const TextInTriangle& o): Text(o), Triangle(o), id(++total){
	count++;
	cout << "create TextInTriangle#" << id << " via cc" << endl;
}

TextInTriangle::~TextInTriangle(){
	count--;
	cout << "destroy TextInTriangle#" << id << endl;
}

ostream& TextInTriangle::print(ostream& os) const{
	os << "TextInTriangle#" << id << ": " << endl
		<< toString();
	return os;
}

TextInTriangle& TextInTriangle::operator= (const TextInTriangle& o){ 
	if(this == &o) 
		return *this;

	Text::operator=(o);
	Triangle::operator=(o);
	return *this;
}

void TextInTriangle::moveBy(const double x, const double y){
	Triangle::moveBy(x,y);
	Text::moveBy(x,y);
	cout << "TextInTriangle was moved by (" << x << ";" << y << ")" << endl;
}

string TextInTriangle::toString() const {
	return Triangle::toString() + "  Text: " + Text::toString();
}

int TextInTriangle::operator==(const TextInTriangle& o) const {
	return (Text::operator==(o) && Triangle::operator==(o));
};


// initialize static fields 
unsigned long int TextInTriangle::count = 0;
unsigned long int TextInTriangle::total = 0;

Соседние файлы в папке lab2_1