为什么以下成员初始化器在c ++中不起作用

xx

我正在通过以下链接学习C ++:https : //www.youtube.com/watch?v=mUQZ1qmKlLY现在,我对成员初始化感到困惑。因此,我有三个文件,main.cpp,Sally.h和Sally.cpp。如下。
main.cpp

#include <iostream>
#include "Sally.h"

using namespace std;

int main(){
   Sally so(3,87);
   so.print();
}

萨莉·h

#ifndef SALLY_H
#define SALLY_H

class Sally
{ 
   public:
       Sally(int a, int b);
       void print();
  private:
       int regVar;
       const int constVar;
};
#endif 

萨莉

#include "Sally.h"
#include <iostream>
using namespace std;

Sally::Sally(int a, int b)
:regVar(a), constVar(b)
{
} 

void Sally::print()
{ cout << "regulat var is: " << regVar << "const var is:" << constVar << endl;
}

当我运行main.cpp文件时,它没有任何打印输出。相反,它给了我以下信息。

$ g++ main.cpp
/tmp/ccyvg9rV.o: In function `main':
main.cpp:(.text+0x29): undefined reference to `Sally::Sally(int, int)'
main.cpp:(.text+0x35): undefined reference to `Sally::print()'
collect2: error: ld returned 1 exit status

此外,为什么我看不到其他语言(例如Java,Julia或Python)中与此成员初始化类似的东西?

橡子

当我运行main.cpp文件时

g++ main.cpp

那不会运行文件,它会编译并链接它。

由于main.cpp它不是一个完整的程序(您也需要Sally.cpp),因此链接器会告诉您您有未定义的引用。

相反,请执行以下操作:

g++ Sally.cpp main.cpp

并且您应该在当前文件夹中获得一个可以运行的二进制文件/可执行文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当parens初始化时,构造函数初始化列表中的C ++ 11大括号初始化为什么不起作用?

来自分类Dev

“循环”在C#中不起作用

来自分类Dev

密码程序在C ++中不起作用

来自分类Dev

为什么统一初始化程序列表功能在C ++中的VS2012中不起作用

来自分类Dev

简单的类在C ++中不起作用

来自分类Dev

umask在C代码中不起作用

来自分类Dev

mkdir函数在C中不起作用

来自分类Dev

开关-默认在C中不起作用

来自分类Dev

Main中的C ++函数不起作用

来自分类Dev

StreamWriter在C#中不起作用

来自分类Dev

Vigenere密码在C中不起作用

来自分类Dev

DLL在C#中不起作用

来自分类Dev

为什么编译器会警告不要在初始化列表中隐藏成员?

来自分类Dev

_sleep()在C ++中不起作用

来自分类Dev

HttpFilterProc在C ++中不起作用

来自分类Dev

目标C中的类别不起作用

来自分类Dev

矩阵乘法在C ++中不起作用

来自分类Dev

简单的类在C ++中不起作用

来自分类Dev

umask在C代码中不起作用

来自分类Dev

For循环在C ++中不起作用

来自分类Dev

在C中释放内存不起作用

来自分类Dev

为什么以下jquery代码在tampermonkey中不起作用

来自分类Dev

Vigenere密码在C中不起作用

来自分类Dev

<c:if>在JSTL中不起作用

来自分类Dev

为什么NVL()在以下外部join(+)中不起作用?

来自分类Dev

在PHP中为什么不起作用

来自分类Dev

简单的for循环在C中不起作用

来自分类Dev

SqliteDataReader 在 C# 中不起作用?

来自分类Dev

初始加载中的 SwiftSpinner 不起作用