首页 > 其他分享 >static constexpr遇到的undefined 问题

static constexpr遇到的undefined 问题

时间:2022-09-25 17:01:49浏览次数:62  
标签:undefined int Solution constexpr static check

class Solution {
    static constexpr int check[10] = {0, 0, 1, -1, -1, 1, 1, -1, 0, 1};
public:
    int rotatedDigits(int n) {
        int ans = 0;
        for (int i = 1; i <= n; ++i) {
            std::string num = std::to_string(i);
            bool valid = true, diff = false;
            for (char ch: num) {
                if (check[ch - '0'] == -1) {
                    valid = false;
                }
                else if (check[ch - '0'] == 1) {
                    diff = true;
                }
            }
            if (valid && diff) {
                ++ans;
            }
        }
        return ans;
    }


};

编译遇到undefined Solution::check问题,这是因为函数里的check[xx]用到了check的地址

而static声明的东西没有地址,需要外部声明给定一个地址

所以加上类外部声明,cxx17以后不用了,constexpr被隐式inline了

int constexpr Solution::check[];

标签:undefined,int,Solution,constexpr,static,check
From: https://www.cnblogs.com/yanzhao-x/p/16728184.html

相关文章

  • java语言中关于static的作用以及说明
    1,。static修饰的成员变量和方法从属于类。并且静态方法不能用非静态成员,否则编译会出现错误。2.静态变量和实例变量的区别   静态变量:        1.......
  • static静态变量的理解
    静态变量类型说明符是static。静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存......
  • 子方法static去掉的报错(求平方数的静方法)的原因
     当去掉static时变为了非静态方法,需要在主函数中new一个新对象才能进行调用,不然无法进行调用,添加SquareIntSq=newSquareInt();result=Sq.square(x);来进行调用。......
  • 静态static
    static是静态的意思,在程序中,可以直接通过类名进行访问,不需要创建对象。而且每一个对象都能调用该静态方法。并且,静态方法里面调用的,也应该是静态类型。并且不会因为对象的......
  • static
    Static关键字在类中,被static修饰的变量称为静态变量,也被称为为类变量。Static的特点随着类的加载而加载优先于对象存在被类的所有对象共享可以通过类名调用......
  • Java static详解
    static的基本使用使用之前先普及一下对象和类是啥对象定义:用来描述客观事物的一个实体,由一组属性和方法构成----------------人关注对象----------------人关注事务信......
  • Java——static
     staticstatic静态的用于修饰成员变量和成员方法(没有被static修饰的变量同时也成为:实例变量。)特点随着类的加载而加载。优先于对象存在。被雷得所有对象共享。可......
  • java中static详解
    Java中static(随着类的出现而出现):适用范围:可以修饰变量和方法静态(static)修饰如下:    a.变量:称为类变量、静态变量    b.方法:称为类方法、静态......
  • java中的static关键字
    引言  通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例。在成员声明前面加上static关键字就能创建这样的成......
  • java static
    1.static关键字的目的:   主要用于内存管理2.static关键字的范围:     1)使用范围:javastatic关键字可以用在变量、方法、代码块和嵌套类伤。   2)作......