是否可以通过在创建对象后重载函数来使类函数的行为完全不同?
例如,我有一个名为 Poop 的类,它有一个名为 start() 的函数。我希望 start() 为 Poop 的每个实例做完全不同的事情。
因此,如果我调用 a.start(),它可能会为 10 次迭代运行 for 循环,如果我调用 b.start(),它可能会完全执行其他操作,例如向用户询问两个数字并返回总和。
我的代码:
对象.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");
对象.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;