Да, вы должны создавать экземпляры классов.
Их часто называют "объектами", поэтому они называют его "объектно-ориентированным программированием".
Во-первых, ваш getName
и setName
должны выглядеть следующим образом:
void hello::letters::setName(char n) {
name = n;
}
char hello::letters::getName() const { // Declaration should also say "const".
return name;
}
При этом любой экземпляр sayHi
должен знать, на какой letters
сказать "Привет", что означает, что вынужно сказать это.
Обычно это делается путем передачи параметра методу, который должен знать:
class sayHi{
public:
sayHi();
void onJoin(const letters& who)
{
cout << who.getName() << endl;
}
};
, который вы бы использовали примерно так:
int main()
{
hello::letters letter;
letter.setName('p');
hello::sayHi greeter;
greeter.onJoin(letter);
}