| Код | #include<iostream> #include<conio.h> using namespace std; class Vehicle{ public: int passengers; int fuelcap; int mpg; char m_str[128]; Vehicle(int p, int f, int m,char* str); }; Vehicle::Vehicle(int p, int f, int m,const char* str) : passengers(p),fuelcap(f),mpg(m) { memset(m_str,0,sizeof(m_str)); if(!str) return; // <- вот из-за этого так лучше не делать strncpy(m_str,str,sizeof(m_str)-1); }
|
Не делать так лучше из-за того, что мы не можем быть точно уверены - проинициализировался обьект полностью или возникли какие-то ошибки т.к. он не возвращает значение (return void). Лучше делать какой-нить метод типа Init(...) который присваивает значения. Хотя можно выкидывать эксепшон в конструкторе.... |