У меня возникли проблемы с наследованием/вызовом конструктора базового класса. Я основывал класс на примере Boost.Asio.Наследование конструктора C++ (вызов конструктора из производного класса)
Вот родительского класс:
#ifndef CLIENT_HPP
#define CLIENT_HPP
#include <iostream>
#include <memory>
#include <utility>
#include <boost/asio.hpp>
#include <boost/lexical_cast.hpp>
using boost::asio::ip::tcp;
class client : public std::enable_shared_from_this<client> {
public:
client(tcp::socket socket) : socket_(std::move(socket)) {
}
void start() {
}
tcp::socket socket_;
};
#endif
Вот ребенка класс:
#ifndef PENGUIN_HPP
#define PENGUIN_HPP
#include "Client.hpp"
class penguin : public client {
public:
penguin() : client(socket_) {
}
};
#endif
Это, как я инициализация Пингвина класса
std::make_shared<penguin>(std::move(socket_))->start();
socket_ здесь tcp :: socket thingy.
Я C++ noob, поэтому любой справка была бы принята с благодарностью!
Похоже, вы ищете [делегирующий конструктор] (http://stackoverflow.com/questions/13961037/delegate-constructor-c) – CoryKramer
Я не храню его – Nyaa
Похож на конструктор 'penguin' должен принять аргумент. –