Нет. Пока оператор присваивания копирует данные в другой объект, конструктор копирования инициализирует объект новый с скопированными данными. Таким образом, он будет использовать свой список инициализатора члена для рекурсивного вызова конструкторов копирования своего члена, тогда как оператор копирования-назначения будет вызывать другие операторы копирования-назначения.
struct Foo {
Foo(Foo const &orig)
: data{oring.data} { }
Foo &operator = (Foo const &orig) {
data = orig.data;
return *this;
}
private:
std::string data;
};