char toCopy [4];будет доступен и существует до конца метода doSomething.А что касается проблемы, которая у вас есть ... Как сказал Навин ... это потому, что вы не указали терминатор "NULL" ... чтобы решить эту проблему, вы можете переписать определение toCopy следующим образом: -
char toCopy[4] = {0};
Я настоятельно рекомендую вам использовать строку вместо обычного массива char ... поэтому, если мы переписываем код с новыми изменениями ... это будет так ...
#include<string>
using std::string;
class Base
{
public:
void doACopy(string & strToCopy) {
str = strToCopy;
}
private:
string str;
};
class Derived : public Base
{
public:
void doSomething() {
string toCopy = "abc";
Base::doACopy(toCopy); // is there any problem passing toCopy here?
}
};
is not easy !!!