Я прихожу из Python и пытаюсь начать работу с C++, но, похоже, мне не удается выяснить, как получить доступ к параметрам класса на C++. Я добавил пример Python-класса, а также мои 3 C++-файла.Доступ к параметрам конструктора в методе класса
Если это Python:
class Greeting:
def __init__(self, name):
self.name = name
def say_name(self):
return "Hello, %s" % self.name
Что бы эквивалент C++ доступа к self.name
экземпляра параметров в методе say_name
?
Прямо сейчас это то, что у меня есть:
greeting.hpp
class greeting
{
public:
greeting(std::string name);
~greeting();
std::string salutation(std::string salutation);
private:
// Nothing
};
greeting.cpp
#include "greeting.hpp"
greeting::greeting(std::string name, std::string nationality)
{
std::cout << "greeting class constructed\n";
}
greeting::~greeting()
{
}
std::string greeting::salutation(std::string salutation)
{
std::string res = salutation + ", " + name;
return res;
}
main.cpp
#include <iostream>
#include "greeting.hpp"
int main(int argc, const char * argv[]) {
greeting obj = greeting("Rashad", "American");
std::string word = "Hello";
std::cout << obj.salutation(word) << std::endl;
return 0;
}
Очевидно, что это не будет работать, потому что параметр name
в методе greeting::salutation
недоступен. Так может кто-нибудь объяснить, как/если я могу получить доступ к параметрам конструктора C++ в методах класса (аналогично приведенному выше примеру Python)?
Я Запуск C++ на XCode 8. Благодаря
Было бы намного проще и продуктивно изучить некоторые базовые возможности C++. Также имейте в виду, что не может быть прямого эквивалента между python и C++. – juanchopanza
В C++ нетрадиционное использование того же имени для функции, что и для переменной (параметр или иначе) –