Can we implement all the concepts of OOPS using the keyword struct? The answer from here is YES! But I don't understand how? Please Tell!
            Asked
            
        
        
            Active
            
        
            Viewed 1,381 times
        
    1
            
            
        - 
                    4In c++ a struct **is** a class with a couple of tweaks. More here: http://stackoverflow.com/questions/92859/what-are-the-differences-between-struct-and-class-in-c – user4581301 May 09 '16 at 23:42
- 
                    1which OOP concept that you can implement with `class` but unable with `struct`? – Bryan Chen May 09 '16 at 23:46
- 
                    Actually my son during his initial course of CS in the University implemented a complete OOP system in pure C :-) – user3159253 May 09 '16 at 23:47
- 
                    1can't really do it in C++ either. member functions fall very short of message sending. – Ryan Haining May 10 '16 at 00:11
- 
                    Well you have to use some other keywords as well, e.g. `const`, `virtual`, `private` etc. in order to implement all OO concepts – M.M May 10 '16 at 00:45
2 Answers
3
            A struct is a class, only all attributes/methods are public by default in the struct. You can very well have methods and attributes in a struct. You can also inherit from a struct (default inheritance is public).
So basically, yes, you can use struct to build an OOP.
 
    
    
        excalibur1491
        
- 1,201
- 2
- 14
- 29
0
            
            
        With a C struct no! The key concept to OO is polymorphism.
To consider a language to be implementing OO you need a runtime dispatch of messages or function calls. In c++ this is implemented by using the virtual keyword.
Now this might well be a trick question as struct and class in c++ only differs by default visibility of members.
 
    
    
        Captain Giraffe
        
- 14,407
- 6
- 39
- 67
- 
                    The struct can carry an set of function pointers. Derived classes simply over ride those methods. Polymorphism can be implemented with pointer to structure. – EvilTeach May 10 '16 at 00:48
- 
                    1@EvilTeach That is a silly argument. Any language can call `member(this, object_functions, arguments).` An OO language comes from language primitives. You can write OO in C as well as ASM and brainfuck. – Captain Giraffe May 10 '16 at 00:53
