Я студент колледжа в моем первом классе C ++. Я нуждаюсь в некоторой помощи для текущей домашней работы.
Цель, которую я пытаюсь достичь, состоит в том, чтобы создать новый объект (Rabbit
) и передать имя pete
из Кролика> Млекопитающее> Животное, которое будет установлено там в частном порядке и на которое будут ссылаться позже (на указатель ссылаются позже распечатать имя).
string pete;
Rabbit* RabbitP = new Rabbit(pete);
У меня есть заголовочный файл для Rabbit
, поэтому:
#include <string>
class Rabbit :
public Mammal
{
public:
Rabbit(std::string tempname) : Mammal(tempname){ }
Rabbit();
~Rabbit();
Я пытаюсь использовать список инициализации, чтобы передать имя Rabbit
в Mammal
, а затем в Animal
оттуда. В заголовках Mammal
и Animal
у меня есть это:
#include <string>
class Mammal :
public Animal
{
public:
Mammal(std::string tempname) : Animal(tempname) {}
Mammal();
~Mammal();
};
#include <string>
class Animal // BASE
{
private:
std::string aName;
public:
Animal(std::string tempname);
Animal();
~Animal();
Animal.cpp
, содержащая функцию:
#include <iostream>
#include <string>
using namespace std;
Animal::Animal()
{
}
Animal::~Animal()
{
}
Animal::Animal(string tempname)
{
aName = tempname;
}
void Animal::Breathe()
{
std::cout << "Takes a deep breath." << std::endl;
}
void Animal::Move()
{
std::cout << "Jiggle your limbs around" << std::endl;
}
string Animal::GetName(Animal*)
{
return aName;
}
Используя отладчик в Visual Studio, я вижу, что он правильно перемещается вверх по конструкторам, но ничего не пропускает. Такое ощущение, что я немного на правильном пути, но чего мне не хватает?