12345678910111213141516171819202122232425262728293031323334353637
#include <iostream> class A { private: const char c; public: A(const char c): c(c) {} void print() { std::cout << c << std::endl; } }; class B { private: A*const prtsA[]; public: //error: incompatible types in assignment of 'A* const*' to 'A* const [0]' B(A*const pa[]): prtsA(pa) {} // ^ void printArray() { prtsA[0]->print(); prtsA[1]->print(); prtsA[2]->print(); } }; int main() { A x('x'); A y('y'); A z('z'); A*const prtsA[] = {&x, &y, &z}; B b(prtsA); b.printArray(); }
array_constructor2.cpp: In constructor 'B::B(A* const*)': array_constructor2.cpp:17:28: error: incompatible types in assignment of 'A* const*' to 'A* const [0]' B(A*const pa[]): prtsA(pa) {} ^
123456789101112131415161718192021222324252627282930313233343536
#include <iostream> class A { private: const char c; public: A(const char c): c(c) {} void print() { std::cout << c << std::endl; } }; class B { private: A*const prtsA[3]; public: //error: incompatible types in assignment of 'A* const*' to 'A* const [0]' B(A*const pa[]): prtsA(pa) {} // ^ void printArray() { prtsA[0]->print(); prtsA[1]->print(); prtsA[2]->print(); } }; int main() { A x('x'); A y('y'); A z('z'); A*const prtsA[] = {&x, &y, &z}; B b(prtsA); b.printArray(); }
#include <iostream> class A { private: const char c; public: A(const char c): c(c) {} void print() { std::cout << c << std::endl; } }; class B { private: A*const *const prtsA; public: //error: incompatible types in assignment of 'A* const*' to 'A* const [0]' B(A*const pa[]): prtsA(pa) {} // ^ void printArray() { prtsA[0]->print(); prtsA[1]->print(); prtsA[2]->print(); } }; int main() { A x('x'); A y('y'); A z('z'); A*const prtsA[] = {&x, &y, &z}; B b(prtsA); b.printArray(); }
x y z