You can not initialize tst_
where you declare it. This can only be done for static const
primitive types. Instead you will need to have a constructor for class test1
.
EDIT: below, you will see a working example I did in ideone.com. Note a few changes I did. First, it is better to have the constructor of test
take a const
reference to string
to avoid copying. Second, if the program succeeds you should return 0
not 1
(with return 1
you get a runtime error in ideone).
#include <iostream> #include <string> using namespace std; class test { public: test(const std::string& s):str(s){}; private: std::string str; }; class test1 { public: test1() : tst_("Hi") {} test tst_; }; int main() { return 0; }