c++关于构造函数传参问题
各位大神,我直接定义一个string变量给_program_name赋值,但编译报代码段有错,实在看不出哪里出了问题。
错误信息:
/tmp/cclHN03G.o: In function `globaWrapper::program_name(std::string const&)':
test.cpp:(.text._ZN12globaWrapper12program_nameERKSs[_ZN12globaWrapper12program_nameERKSs]+0x18): undefined reference to `globaWrapper::_program_name'
test.cpp:(.text._ZN12globaWrapper12program_nameERKSs[_ZN12globaWrapper12program_nameERKSs]+0x26): undefined reference to `globaWrapper::_program_name'
collect2: error: ld returned 1 exit status
错误信息:
/tmp/cclHN03G.o: In function `globaWrapper::program_name(std::string const&)':
test.cpp:(.text._ZN12globaWrapper12program_nameERKSs[_ZN12globaWrapper12program_nameERKSs]+0x18): undefined reference to `globaWrapper::_program_name'
test.cpp:(.text._ZN12globaWrapper12program_nameERKSs[_ZN12globaWrapper12program_nameERKSs]+0x26): undefined reference to `globaWrapper::_program_name'
collect2: error: ld returned 1 exit status
#include <string>
#include <iostream>
using namespace std;
class globaWrapper{
public:
static string program_name(const string& npn)
{
_program_name = npn;
return _program_name;
}
public:
static string _program_name;
};
int main()
{
static string aa = "qqq";
cout << globaWrapper::program_name(aa) << endl;
return 0;
}
...全文
相关推荐
C++ vector传参方式[源码]
根据不同的需求和性能考量,vector的传参方式主要有三种:传值、传引用和传指针。传值方式涉及创建vector的一个副本,调用拷贝构造函数。
拷贝构造函数导致指针挂起的研究
根据给定文件的信息,本文将深入探讨拷贝构造函数导致指针挂起的问题,并提出解决方案。此问题在C++编程中较为常见,特别是在类中包含指针成员变量时更为显著。
C++11并发编程:多线程std::thread
原先使用多线程只能用系统的API,无法解决跨平台问题,一套代码平台移植,对应多线程代码也必须要修改。现在在C++11中只需使用语言层面的thread可以解决这个问题。
kaobeigouzao.7z
本文介绍了一个C++ Person类的实现,重点展示拷贝构造函数的应用场景。代码演示了对象初始化、传参和返回过程中的拷贝行为,指出浅拷贝引发的堆内存重复释放问题,并强调通过深拷贝机制进行修复,确保动态
C++常量引用传值优势[项目源码]
在C++编程实践中,函数传参方式的选择对程序的性能和效率有着直接的影响。本文深入分析了在C++中传递常量引用相较于传统传值方式的优势。



