struct in class

前端 未结 6 1159
梦毁少年i
梦毁少年i 2020-12-30 05:09

I have struct in class and not know how to call variables from struct, please help ;)

#include 
using namespace std;

class E
{
public: 
            


        
6条回答
  •  梦毁少年i
    2020-12-30 05:50

    I'd like to add another use case for an internal struct/class and its usability. An inner struct is often used to declare a data only member of a class that packs together relevant information and as such we can enclose it all in a struct instead of loose data members lying around.

    The inner struct/class is but a data only compartment, ie it has no functions (except maybe constructors).

    #include 
    
    class E
    {
        // E functions..
    public:
        struct X
        {
            int v;
            // X variables..
        } x;
        // E variables..
    };
    
    int main()
    {
        E e;
        e.x.v = 9;
        std::cout << e.x.v << '\n';
        
        E e2{5};
        std::cout << e2.x.v << '\n';
    
        // You can instantiate an X outside E like so:
        //E::X xOut{24};
        //std::cout << xOut.v << '\n';
        // But you shouldn't want to in this scenario.
        // X is only a data member (containing other data members)
        // for use only inside the internal operations of E
        // just like the other E's data members
    }
    

    This practice is widely used in graphics, where the inner struct will be sent as a Constant Buffer to HLSL. But I find it neat and useful in many cases.

提交回复
热议问题