cpp_Fiasco - 8BitsCoding/RobotMentor GitHub Wiki

Fiasco

๋‹ค์Œ ์ฝ”๋“œ์˜ ๋ฌธ์ œ์ ์ด ๋ญ˜๊นŒ?

// Dog, Cat์„ ๋‹ค๋ฅธ๋ฐ ๊ตฌํ˜„ํ•˜๊ณ  ...

using namespace std;

Dog d("Gunner");

int main() {
    d.bark();

    return 0;
}
// Dog.cpp

Cat c("Smokey");

Dog::Dog(char name) {
    std::cout << "Constructing Dog " << name << std::endl;
    _name = name;
    c.meow();
}

๋ฌธ์ œ๊ฐ€ ๋ญ˜๊นŒ?

Dog์˜ ์ƒ์„ฑ ์‹œ์ ๋ณด๋‹ค Cat์˜ ์ƒ์„ฑ์‹œ์ ์ด ๋А๋ฆด ๊ฒฝ์šฐ ํ”„๋กœ๊ทธ๋žจ์ด ์ฃฝ๊ฒŒ ๋œ๋‹ค.


ํ•ด๊ฒฐ๋ฐฉ๋ฒ•? :

Singleton Patern ์ด์šฉ

class Dog;
class Cat;

class Singleton {
    static Dog* pd;
    static Cat* pc;

public:
    ~Singleton();
    static Dog* getDog();
    static Cat* getCat();
};

int main() {
    Singleton s;
    s.getCat->meow();
}