В этой небольшой тестовой программы, может кто-нибудь объяснить мне:Указатель на член данных класса
- Почему каждые адреса печатаются в обоих петлями то же самое?
Почему он отличается от одного цикла к другому?
struct A { A(){ std::cout << &v << "\n"; }; int v; }; int main() { std::vector<A> vec; int i = 10; while (i--) vec.push_back(A()); for (A b : vec) std::cout << &(b.v) << "\n"; while (true); return 0; }
Я на самом деле ожидал увидеть десять различных адресов повторяется 2 раза
Потому что 'b' является * копией * векторного элемента, а не самого векторного элемента. –
Попробуйте 'для (A & b: vec)', чтобы увидеть адрес в 'vector'. –
Большое спасибо, я чувствую себя очень глупым .. – Treycos