首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结构c++中的默认参数

结构c++中的默认参数
EN

Stack Overflow用户
提问于 2019-12-26 20:21:57
回答 1查看 141关注 0票数 0

我想在结构中使用一个变量作为函数的默认参数

例如,像这样

代码语言:javascript
复制
struct A {   
    int b;  
    A () {  
        b = 0;  
    }  
    int func(int t = b) {  
        ...  
    }  
}  

很抱歉我的代码不好,这是我第一次发布问题

但我一直收到错误,我也尝试使用静态int,但我得到运行时错误。

有没有办法使用b作为默认参数?!

当对b使用静态int时,我得到:(mx是b,wavelet_tree是A)

代码语言:javascript
复制
/tmp/cc3OBfq8.o: In function `main':
a.cpp:(.text+0x2dc): undefined reference to `wavelet_tree::mx'
/tmp/cc3OBfq8.o: In function `wavelet_tree::wavelet_tree()':
a.cpp:(.text._ZN12wavelet_treeC2Ev[_ZN12wavelet_treeC5Ev]+0x42): undefined reference to `wavelet_tree::mx'
/tmp/cc3OBfq8.o: In function `wavelet_tree::build(int*, int, int)':
a.cpp:(.text._ZN12wavelet_tree5buildEPiii[_ZN12wavelet_tree5buildEPiii]+0x66): undefined reference to `wavelet_tree::mx'
a.cpp:(.text._ZN12wavelet_tree5buildEPiii[_ZN12wavelet_tree5buildEPiii]+0x73): undefined reference to `wavelet_tree::mx'
a.cpp:(.text._ZN12wavelet_tree5buildEPiii[_ZN12wavelet_tree5buildEPiii]+0x7f): undefined reference to `wavelet_tree::mx'
collect2: error: ld returned 1 exit status
EN

回答 1

Stack Overflow用户

发布于 2019-12-26 20:35:25

只需重载函数即可

代码语言:javascript
复制
struct A
{   
    int b;  
    A () : b(0) {};

    int func(int t) { return whatever();};
    int func()  {return func(b);};
};

这样,b可以是A的任何成员(无论是否为static ),也可以是定义func()时可访问的任何变量,等等。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59488414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档