royqh1979 / RedPanda-CPP

A light-weight C/C++ IDE based on Qt
GNU General Public License v3.0
953 stars 103 forks source link

通过 private 继承获得的成员在编辑器的补全提示中没有图标 #293

Closed West-Pavilion closed 6 months ago

West-Pavilion commented 6 months ago

通过 private 继承获得的成员在编辑器的补全提示中没有图标

请考虑如下代码:

#include <iostream>

/* 通过 private 继承获得的成员在编辑器的补全提示中没有图标 */

/* 这里定义一个用于演示的基类类型 base */
class base {
    protected:
        int base_data = 8888;
    public:
        std::string description{"this is base"};
};

/* class 的默认基类访问是 private 的 */
class derived : base {
public:
    derived(){
        /* 这里 base_data 和 description 的补全提示没有图标 */
        std::cout << "base_data: " << base_data << std::endl;
        std::cout << "description: " << description << std::endl;
    }
} instance;

/* 如果在 struct 中指定 private 继承,那么从基类获得的成员也没有图标 */
struct derived_str : private base {
public:
    derived_str(){
        /* 这里 base_data 和 description 的补全提示没有图标 */
        std::cout << "base_data: " << base_data << std::endl;
        std::cout << "description: " << description << std::endl;
    }
} instance_str;

int main() {
}

实际效果演示图:

屏幕截图(281)

屏幕截图(282)

下面是对应的测试代码:

通过 private 继承获得的成员在编辑器的补全提示中没有图标.zip