我在一个项目的嵌套子文件夹中有很多源文件。我有 4 个不同的类,我试图替换它们,并希望找到它们分配的源中的每个位置(堆 + 堆栈)。
不幸的是,由于包含结构不佳,无法信任 Visual Studio 的“搜索整个解决方案”功能,因此我不得不在源文件中进行手动搜索。
我认为足够了:
"new CLASS1("
堆和三个标记之间的空格的任意组合
"^CLASS2"
我想说的是类名从行的开头开始(不包括空格)以进行堆栈分配。
对于堆栈分配,尝试了 [^a-zA-Z] CLASS3 [a-zA-Z]+
,但我不精通正则表达式,所以想通过 SO 运行它。对于堆,只尝试了上面的字符串,但我知道简单的额外间距会破坏该模式,所以我知道这是不正确的。
谁能想出一个更好的匹配器或者甚至是一个完全更好的方法来解决这个问题?
谢谢,
AK
最佳答案
将构造函数设为私有(private),每次尝试创建对象时都会收到错误消息。
创建一个私有(private)的 new() 运算符来对堆分配执行相同的操作。
编辑:注意创建自身实例的类实现(包括静态方法)中的代码。从这样的上下文调用私有(private)构造函数是有效的,不会触发错误。还要注意友元类/函数。
关于c++ - Regex/grep/findstr 用于定位内存分配 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13767522/