オブジェクトを作成した後に関数をオーバーロードすることで、クラス関数の動作をまったく異なるものにすることは可能ですか?
たとえば、Poop というクラスがあり、start() という関数があります。start() が Poop のインスタンスごとにまったく異なることをしたいのです。
したがって、a.start() を呼び出すと、for ループが 10 回実行される可能性があり、b.start() を呼び出すと、ユーザーに 2 つの数値を要求して合計を返すなど、まったく別のことが行われる可能性があります。
私のコード:
obj.cpp
#include <string>
#include <obj.h>
//Concstructor
Poop::Poop (std::string get_name) {
my_name = get_name;
}
//Obj functions implement here
void Poop::set_name(std::string name) {
my_name = name;
}
// I want to change this so that each object can behave differently
// when they call .start()
void Poop::start() {
std::cout << "I am poop_1's start call" << std::endl;
}
//Event objects
Poop poop_1("bob");
obj.h
#include <iostream>
#include <string>
// defin obj
class Poop {
//class attrs; private
private:
std::string my_name;
public: //class function
Poop(std::string); //constructor
std::string get_name() {return (my_name);}
void set_name(std::string); //sets Obj name
void start(); // for the custom event; need to change this somehow
};
// global event objects
extern Poop poop_1;