You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++入门问题:自定义testing类成员函数无法访问是什么原因?

问题根因

C++ 中class定义的类,未显式声明访问修饰符的成员,默认访问权限为私有(private),私有成员仅允许类内部的成员函数、友元访问,类外部(比如此处的main函数)无权直接调用。你代码里的printname成员函数没有加public修饰符,属于私有成员,main函数调用时自然会报无法访问的错误。

修复方案

直接修改testing.h里的类定义,给需要外部访问的成员加上public修饰符即可:

#ifndef TESTING_H
#define TESTING_H

#include <string>
using namespace std;

class testing
{
private: // 私有成员建议显式标注,提升代码可读性
    string Name;
public: // 新增public修饰符,下方声明的成员可被类外部访问
    void printname(string name);
};

#endif

其余的testing.cpp和main.cpp代码无需改动,重新编译即可正常运行。

优化建议

  • 不建议在头文件中写using namespace std;,容易引发命名冲突,最好改为显式使用std::前缀,比如std::string Name;
  • 类的成员变量建议和普通变量做命名区分,比如加前缀m_写成m_name,可进一步提升代码可读性

内容的提问来源于stack exchange,提问作者jaycob hamso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 13:39:03