본문 바로가기

::public/C++62

대입 연산자 오버로딩, 복사 생성자 #include #include "BadPerson.h"#include "GoodPerson.h" using namespace std; int func(int x){ return x; // 복사} int main(){ int a = 1; int b = a; // 복사 생성자 a = b; // 대입 연산자 func(a); // 복사 //BadPerson badPerson0{ 46.f, 153.f, "David Daehee Kim" }; //BadPerson badPerson1 = badPerson0; //BadPerson badPerson2; //badPerson2 = badPerson0; //badPerson0.print(); //badPerson1.print(); //badPerson2.print();.. 2020. 11. 23.
첨자 연산자 오버로딩 #include #include "Vector.h"#include "String.h"#include "HashTable.h" using namespace std; int main(){ Vector v{ 1, 2, 3 }; cout 2020. 11. 23.
비트 연산자 오버로딩 #include #include using namespace std; class Vector{private: int x; int y; int z; public: Vector() { } Vector(int x, int y, int z) :x(x), y(y), z(z) { } friend ostream& operator 2020. 11. 23.
논리 연산자 오버로딩 #pragma warning(disable: 4996)#include #include using namespace std; class String{private: char* _chars; public: String(const char* chars) : _chars(new char[strlen(chars) + 1]) { strcpy(_chars, chars); } bool operator!() const { return strlen(_chars) == 0; } bool operator||(bool b) const { return strlen(_chars) > 0 || b; }}; bool func(){ cout 2020. 11. 23.
비교&관계 연산자 오버로딩 #pragma warning(disable : 4996) #include #include using namespace std; class String{private: char* _chars; public: String(const char* chars) : _chars(new char[strlen(chars) + 1]) { strcpy(_chars, chars); } bool operator==(const String& s) const { return strcmp(_chars, s._chars) == 0; } bool operator!=(const String& s) const { return !(*this == s); } bool operator 0; } bool operator>=(const Strin.. 2020. 9. 23.
연산자 오버로딩 #include using namespace std; class Vector{public: float x; float y; float z; // 단항 연산자 +, +vector = vector Vector operator+() const { return Vector{ +x, +y, +z }; } // 단항 연산자 -, -vector = vector Vector operator-() const { return Vector{ -x, -y, -z }; } // 이항 연산자 +, vector + vector = vector Vector operator+(const Vector& v) const { return Vector{ x + v.x, y + v.y, z + v.z }; } // 이항 연산자 -, vecto.. 2020. 9. 15.