0

TcpTahoe 类是套接字类的子类。看http://www.nsnam.org/doxygen/classns3_1_1_tcp_tahoe.html (我想模拟一个小型网络。)

代码:

Ptr<Socket> ns3TcpSocket;
...
Ptr<TcpTahoe> ptr = dynamic_cast< Ptr<TcpTahoe> >(ns3TcpSocket);
uint32_t ssthresh = ptr->GetSSThresh2();
cout << ssthresh;

所以我现在在运行时,ns3TcpSocket 将是一个 TcpTahoeSocket。但我得到一个编译错误。

问候

4

1 回答 1

1

dynamic_cast可用于转换为指针或引用。在你的情况下,Ptr<TcpTahoe>两者都不是。您应该在这里使用原始指针。我不知道这Ptr门课,但是这些方面的东西应该可以工作:

Ptr<TcpTahoe> ptr = dynamic_cast<TcpTahoe*>(ns3TcpSocket->GetRawPtr());

(当然是编造的GetRawPtr()。如果存在,大多数机会都会成功)。Ptroperator&

哦,请记住,如果演员无法完成,dynamic_cast可能会返回。NULL确保你处理这种情况。

于 2012-06-29T20:57:57.560 回答