求助一个关于C++ 隐藏 的问题
直接说应用环境吧,我打算在C++的strstream类上继承一个自己的logstream类,但是要修改endl操作子的行为以及自己增加几个操作子。
直接从ostream类的文件中拷贝endl函数过来,把参数类型改成logstream之后,发现系统不会去调用这个endl操作子,然后我重载了 logstream::operator << (endl函数指针),结果endl操作子的行为是正确了,但是重载的operator << 因为隐藏了基类里面的operator << 操作符,结果所有其他的 << 操作符统统不能用了。。。。
解决方法是有的,就是在logstream类中把所有要用到的 << 操作符统统写一遍,然后直接调用基类的对应参数类型的操作,中间还要经过强制类型转换。。。
我希望有比较优雅的方法,于是使用using basic_stream::operator<<;来尝试不隐藏所有的<<操作符,结果和预期不太一样,基类中的那些<<操作符确实没隐藏了,但是我自己写的logstream::operator << (endl函数指针);这个函数也同时失效了,这个我一直没有想到原因和解决方法。
另外,如何增加一个操作子 比如我要增加endl2操作子,直接根据endl函数的形式,改了个名字,结果编译倒是能通过,但 <<操作符调用的不是logstream::operator << (函数指针) 而是logstream::operator << (const void*) 这个函数了
直接从ostream类的文件中拷贝endl函数过来,把参数类型改成logstream之后,发现系统不会去调用这个endl操作子,然后我重载了 logstream::operator << (endl函数指针),结果endl操作子的行为是正确了,但是重载的operator << 因为隐藏了基类里面的operator << 操作符,结果所有其他的 << 操作符统统不能用了。。。。
解决方法是有的,就是在logstream类中把所有要用到的 << 操作符统统写一遍,然后直接调用基类的对应参数类型的操作,中间还要经过强制类型转换。。。
我希望有比较优雅的方法,于是使用using basic_stream::operator<<;来尝试不隐藏所有的<<操作符,结果和预期不太一样,基类中的那些<<操作符确实没隐藏了,但是我自己写的logstream::operator << (endl函数指针);这个函数也同时失效了,这个我一直没有想到原因和解决方法。
另外,如何增加一个操作子 比如我要增加endl2操作子,直接根据endl函数的形式,改了个名字,结果编译倒是能通过,但 <<操作符调用的不是logstream::operator << (函数指针) 而是logstream::operator << (const void*) 这个函数了
...全文
相关推荐
C++实现进程隐藏
以下是一个简单的C++代码示例,展示了如何隐藏进程:```cpp#include <windows.h>#include <iostream>int main() { STARTUPINFO si; PROCESS_INFORMATION
HideProcess完结篇.zip_c++ 进程隐藏_c++隐藏进程_隐藏进程_隐藏驱动_驱动隐藏进程
首先,我们要理解进程隐藏的基本概念。在操作系统中,每个运行的应用程序或服务都是一个进程,可以通过任务管理器等工具查看。进程隐藏就是不让这些工具或者其它程序检测到特定的进程,达到隐蔽执行的效果。
C++程序控制台的隐藏
本文将详细介绍如何在Windows环境下隐藏C++程序中的控制台窗口,并探讨相关原理。
隐藏cmd命令行窗口C++源码
本资源提供了隐藏CMD窗口的C++源码,对于C++开发者来说是一个非常实用的参考。隐藏CMD窗口的关键在于Windows API函数的应用,特别是`CreateProcess`函数。
cpp-kafkabridge一个ApacheKafkaClientSDK
【cpp-kafkabridge——一个Apache Kafka Client SDK】cpp-kafkabridge是一个专为C++开发者设计的Apache Kafka客户端SDK,它基于librdkafka


