【发布时间】:2026-01-18 01:00:01
【问题描述】:
**嗨。我有 2 个问题。
1) 我正在做一个复制构造函数。 我的声明是:**
ticket_office& operator=(const ticket_office& d);
但是,当我执行现在发布的功能时:
ticket_office&::operator= (const ticket_office& d){
sizeTickets_sold=d.sizeTickets_sold;
capacityTickets_sold=d.capacityTickets_sold;
if(this!=&d){
Tickets_for_sale=d.Tickets_for_sale;
Tickets_sold=new Ticket[d.capacity];
for(int i=0;i<sizeTickets_sold;i++){
Tickets_sold[i]=d.Tickets_sold[i];
}
}
return* this;
}
编译器给了我这个错误:-
1) [错误] 'Ticket_office& operator=(const Ticket_office&)' 声明中的明确限定”
2) [错误] 'Ticket_office& operator=(const Ticket_office&)' 必须是非静态成员函数"
为什么?没看懂?
还有第二个问题:
2)如果我创建一个从另一个公共继承的类,子类可以访问母类的所有公共和受保护但不是私有的元素,对吗?
如果在受保护的情况下继承? 私下里?
我了解在所有 3 种情况下,子类都可以访问公共和受保护的项目,但不能访问私有项目。但真正的区别是什么?
【问题讨论】:
标签: c++ pointers inheritance vector