I have implemented working template class LList&lt; T&gt; and now I want object of this template class to be a property of a new class called Factory2. Here is how my Factory2 class looks like   #include "LList.h" template&lt;typename T&gt; class Factory2 { public:     Factory2();    ~Factory2(); private:     LList&lt;T&gt; arr;  };   I have defined the  constructor and destructor of Factory2 but how should I implement them for the LList&lt; T&gt; arr object? The LList&lt; T&gt; class has it's own constructor and destructor. I get the error:undefined reference to the constructor of LList&lt;int&gt;::LList() and LList&lt;int&gt;::~LList()
341
Quote from :     The only portable way of using templates at the moment is to implement them in header files by using inline functions.   Why is this?  (Clarification: header files are not the only portable solution. But they are the most convenient portable solution.)
42535
If I have a class as follows     class Example_Class     {        private:          int x;           int y;         public:           Example_Class()           {               x = 8;              y = 9;          }        ~Example_Class()         { }     };   And a struct as follows  struct {    int x;    int y; } example_struct;   Is the structure in memory of the  example_struct simmilar to that in Example_Class  for example if I do the following  struct example_struct foo_struct; Example_Class foo_class = Example_Class();  memcpy(&amp;foo_struct, &amp;foo_class, sizeof(foo_struct));   will foo_struct.x = 8 and foo_struct.y = 9 (ie: the same values as the x,y values in the foo_class) ?  The reason I ask is I have a C++ library (don't want to change it) that is sharing an object with C code and I want to use a struct to represent the object coming from the C++ library. I'm only interested in the attributes of the object.  I know the ideal situation would be to have Example_class wrap arround a common structure between the C and C++ code but it is not going to be easy to change the C++ library in use.
72062
The question says it all really.  Am I allowed derive a class from a struct, or should I create a class that embeds my struct and defines copy constructors and an = operator to move between the two?
27126
I think I've declared a Vector with an object correctly.  But, I don't know how to access it's members when looping with Iterator.  In my code, the line --->>  cout &lt;&lt; " " &lt;&lt; *Iter;  How do I print the contents of the members?  Like *Iter.m_PackLine ???  Not sure if I used the correct terminology, but appreciate the help!  Thanks  class CFileInfo {   public:       std::string m_PackLine;       std::string m_FileDateTime;       int m_NumDownloads; };  void main() {   CFileInfo packInfo;    vector&lt;CFileInfo, CFileInfo&amp;&gt; unsortedFiles;   vector&lt;CFileInfo, CFileInfo&amp;&gt;::iterator Iter;    packInfo.m_PackLine = "Sample Line 1";   packInfo.m_FileDateTime = "06/22/2008 04:34";   packInfo.m_NumDownloads = 0;   unsortedFiles.push_back(packInfo);    packInfo.m_PackLine = "Sample Line 2";   packInfo.m_FileDateTime = "12/05/2007 14:54";   packInfo.m_NumDownloads = 1;   unsortedFiles.push_back(packInfo);   for (Iter = unsortedFiles.begin(); Iter != unsortedFiles.end(); Iter++ )  {     cout &lt;&lt; " " &lt;&lt; *Iter; // !!! THIS IS WHERE I GET STUMPED     // How do I output values of the object members?   } }  // end main
62585
Given the following example, why do I have to explicitly use the statement b-&gt;A::DoSomething() rather than just b-&gt;DoSomething()?  Shouldn't the compiler's overload resolution figure out which method I'm talking about?  I'm using Microsoft VS 2005. (Note: using virtual doesn't help in this case.)  class A {   public:     int DoSomething() {return 0;}; };  class B : public A {   public:     int DoSomething(int x) {return 1;}; };  int main() {   B* b = new B();   b-&gt;A::DoSomething();    //Why this?   //b-&gt;DoSomething();    //Why not this? (Gives compiler error.)   delete b;   return 0; }
103999
I am having trouble making real use of Devel's debugging functions kint() and dpm() in my modules and twig templates. They work fine for primitive variables, flat arrays and such, but if I want to inspect into some object like an EntityRerefenceFieldItemList they either cause the site to crash (white page) or generate so much data such that the scripts for expanding the list no longer work.  How do I circumvent these problems?
59275
Consider:  // member data omitted for brevity  // assume that "setAngle" needs to be implemented separately // in Label and Image, and that Button does need to inherit // Label, rather than, say, contain one (etc)  struct Widget {     Widget&amp; move(Point newPos) { pos = newPos; return *this; } };  struct Label : Widget {     Label&amp; setText(string const&amp; newText) { text = newText; return *this; }     Label&amp; setAngle(double newAngle) { angle = newAngle; return *this; } };  struct Button : Label {     Button&amp; setAngle(double newAngle) {         backgroundImage.setAngle(newAngle);         Label::setAngle(newAngle);         return *this;     } };  int main() {     Button btn;      // oops: Widget::setText doesn't exist     btn.move(Point(0,0)).setText("Hey");      // oops: calling Label::setAngle rather than Button::setAngle     btn.setText("Boo").setAngle(.5);  }   Any techniques to get around these problems?  Example: using template magic to make Button::move return Button&amp; or something.  edit It has become clear that the second problem is solved by making setAngle virtual.  But the first problem remains unsolved in a reasonable fashion!  edit: Well, I guess it's impossible to do properly in C++. Thanks for the efforts anyhow.
90693
VC++ makes functions which are implemented within the class declaration inline functions.  If I declare a class Foo as follows, then are the CONSTRUCTOR and DESTRUCTOR inline functions?  class Foo  {     int* p; public:     Foo() { p = new char[0x00100000]; }     ~Foo() { delete [] p; } };  {     Foo f;     (f); }
36051
class Test {        bool isVal() const {           return isVal;       }    private:        bool isVal; };   On Compiling this file it says      testClass.cpp:9: declaration of `bool   Test::isVal'      testClass.cpp:3: conflicts with   previous declaration `bool   Test::isVal()'   Although the same would work for java   class Test {    private boolean isVal;    public boolean isVal() {       return isVal;   }  }   Why does the compile error occur in C++ not in Java?
14927
Disclaimer Yes, I am fully aware that what I am asking about is totally stupid and that anyone who would wish to try such a thing in production code should be fired and/or shot.  I'm mainly looking to see if can be done. Now that that's out of the way, is there any way to access private class members in C++ from outside the class?  For example, is there any way to do this with pointer offsets? (Naive and otherwise non-production-ready techniques welcome) Update As noted in the comments, I asked this question because I wanted to write a blog post on over-encapsulation (and how it affects TDD).  I wanted to see if there was a way to say &quot;using private variables isn't a 100% reliable way to enforce encapsulation, even in C++.&quot;  At the end, I decided to focus more on how to solve the problem rather than why it's a problem, so I didn't feature some of the stuff brought up here as prominently as I had planned, but I still left a link. At any rate, if anyone's interested in how it came out, here it is:   (I suggest reading it before you decide that I'm crazy).
93459
I have a dll that contains a templated class. Is there a way to export it without explicit specification?
17104
Consider these classes.  class Base {    ... };  class Derived : public Base {    ... };   this function  void BaseFoo( std::vector&lt;Base*&gt;vec ) {     ... }   And finally my vector  std::vector&lt;Derived*&gt;derived;   I want to pass derived to function BaseFoo, but the compiler doesn't let me. How do I solve this, without copying the whole vector to a std::vector&lt;Base*&gt;?
22118
When writing xml documentation you can use &lt;see cref="something"&gt;something&lt;/see&gt;, which works of course. But how do you reference a class or a method with generic types?   public class FancyClass&lt;T&gt; {   public string FancyMethod&lt;K&gt;(T value) { return "something fancy"; } }   If I was going to write xml documentation somewhere, how would I reference the fancy class? how can I reference a FancyClass&lt;string&gt;? What about the method?  For example in a different class I wanted to let the user know that I will return an instance of FancyClass&lt;int&gt;. How could I make a see cref thing for that?
13958
As a  developer I'm used to running through constructors:    class Test {     public Test() {         DoSomething();     }      public Test(int count) : this() {         DoSomethingWithCount(count);     }      public Test(int count, string name) : this(count) {         DoSomethingWithName(name);     } }   Is there a way to do this in C++?  I tried calling the Class name and using the 'this' keyword, but both fail.
15868
Why does this code:  class A {     public:          explicit A(int x) {} };  class B: public A { };  int main(void) {     B *b = new B(5);     delete b; }   Result in these errors:   main.cpp: In function ‘int main()’: main.cpp:13: error: no matching function for call to ‘B::B(int)’ main.cpp:8: note: candidates are: B::B() main.cpp:8: note:                 B::B(const B&)   Shouldn't B inherit A's constructor?  (this is using gcc)
105374
Backgrounder:  The  (Pointer to IMPLementation) is a technique for implementation hiding in which a public class wraps a structure or class that cannot be seen outside the library the public class is part of.  This hides internal implementation details and data from the user of the library.  When implementing this idiom why would you place the public methods on the pimpl class and not the public class since the public classes method implementations would be compiled into the library and the user only has the header file?  To illustrate, this code puts the Purr() implementation on the impl class and wraps it as well.  Why not implement Purr directly on the public class?  // header file: class Cat {     private:         class CatImpl;  // Not defined here         CatImpl *cat_;  // Handle      public:         Cat();            // Constructor         ~Cat();           // Destructor         // Other operations...         Purr(); };   // CPP file: #include "cat.h"  class Cat::CatImpl {     Purr(); ...     // The actual implementation can be anything };  Cat::Cat() {     cat_ = new CatImpl; }  Cat::~Cat() {     delete cat_; }  Cat::Purr(){ cat_-&gt;Purr(); } CatImpl::Purr(){    printf("purrrrrr"); }
69483
I have code like this:  template &lt;typename T, typename U&gt; struct MyStruct {     T aType;     U anotherType; };  class IWantToBeFriendsWithMyStruct {     friend struct MyStruct; //what is the correct syntax here ? };   What is the correct syntax to give friendship to the template ?