首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从成员函数中为类的成员变量赋值

从成员函数中为类的成员变量赋值可以通过以下几种方式实现:

  1. 直接在成员函数中使用赋值语句给成员变量赋值。这种方式适用于成员变量是公有的情况,可以直接在成员函数中使用成员变量名进行赋值操作。
  2. 使用构造函数初始化列表。构造函数初始化列表可以在创建对象时直接对成员变量进行初始化赋值。在类的构造函数中使用初始化列表的语法,将参数值赋给对应的成员变量。
  3. 使用成员函数设置成员变量的值。可以在类中定义一个公有的成员函数,通过该函数来设置成员变量的值。在成员函数中使用赋值语句将参数值赋给对应的成员变量。

以下是一个示例代码,演示了上述三种方式:

代码语言:txt
复制
#include <iostream>

class MyClass {
public:
    int publicVar;

    MyClass() {} // 默认构造函数

    MyClass(int value) : publicVar(value) {} // 构造函数初始化列表

    void setPublicVar(int value) {
        publicVar = value;
    }
};

int main() {
    MyClass obj1;
    obj1.publicVar = 10; // 直接赋值

    MyClass obj2(20); // 构造函数初始化列表

    MyClass obj3;
    obj3.setPublicVar(30); // 成员函数设置值

    std::cout << obj1.publicVar << std::endl; // 输出:10
    std::cout << obj2.publicVar << std::endl; // 输出:20
    std::cout << obj3.publicVar << std::endl; // 输出:30

    return 0;
}

以上是从成员函数中为类的成员变量赋值的几种常见方式。具体使用哪种方式取决于成员变量的访问权限和具体需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

const修饰成员变量函数

const在,可以修饰成员变量成员函数,主要目的也是保护成员内部一些属性不被轻易修改。以保证数据完整性。下面分别介绍const修饰成员变量成员函数。...const修饰成员变量表示成员常量,只能在初始化列表赋值,可以被const和非const成员函数调用,但不能修改其值。...= 300; } ~CConst(void); private: // const 成员变量 const int iValue; }; const修饰成员函数目的是不让函数修改内部数据成员,而且不会调用其他非...CConst(void):x(200), y(300){} // const 成员函数const修饰符只能在函数名后面 void display() const { // 不能调用非const函数,...本函数不修改成员变量,但不能保证被调用函数不会修改 // input(); cout << “x “ << x << endl; cout << “y “ << y << endl; // const

19620

C++const成员变量成员函数

,如果你不希望某些数据被修改,可以使用const关键字加以限定。const 可以用来修饰成员变量成员函数。...const成员变量 const 成员变量用法和普通 const 变量用法相似,只需要在声明时加上 const 关键字。...const成员函数(常成员函数) const 成员函数可以使用所有成员变量,但是不能修改它们值,这种措施主要还是为了保护数据而设置。const 成员函数也称为常成员函数。...我们通常将 get 函数设置成员函数。读取成员变量函数名字通常以get开头,后跟成员变量名字,所以通常将它们称为 get 函数。...函数头部结尾加上 const 表示常成员函数,这种函数只能读取成员变量值,而不能修改成员变量值,例如char * getname() const。

20430

C++成员函数 | 成员函数

C++成员函数性质 在C++成员函数函数一种,它有返回值和函数类型,它与一般函数区别只是:  属于一个成员,出现在。...C++在使用函数时,要注意调用它权限以及它作用域,私有的成员函数只能被本类其他成员函数所调用,而不能被外调用,成员函数可以访问本类任何成员,可以引用在本作用域中有效数据。 ...在C++,有的函数并不是准备外界调用,而是本类成员函数所调用,就应该将它们指定为 private。...这种函数作用是支持其他函数操作,是其他成员函数外用户不能调用这些私有的函数。  成员函数十分重要部分。...C++外定义成员函数 上述所讲成员函数是在定义,在C++也可以在只写成员函数声明,而在外面进行函数定义。

1.8K74

【Python】面向对象 ③ ( 构造函数 | 成员变量赋值问题 | 构造方法引入 | 构造函数可以同时定义成员变量 )

一、构造函数 1、成员变量赋值问题 在之前博客 , 定义 Python Student : class Student: name = None # 姓名 age = None..., 才能完成成员变量赋值操作 ; 2、构造方法引入 使用构造方法 , 可以在一行代码内 , 多个变量同时赋值 , 这样就可以减少代码量 ; 构造方法简介 : 构造方法函数名 : Python ...Student 包含了 __init__ 构造方法 , 和 info 成员方法 ; __init__() 构造方法 , 接收两个参数 name 和 age , 分别赋值给 name 和 age 成员变量...在上述代码示例 , 定义了 name 和 age 成员变量 , class Student: name = None # 姓名 age = None # 年龄 这两个成员变量是可以省略...; 构造函数还有一个作用 , 就是定义成员变量 , 并为其赋值 ; def __init__(self, name, age): self.name = name

23530

c++之类成员变量成员函数是分开存储

C++程序内存格局通常分为四个区: 全局数据区(data area),代码区(code area),栈区(stack area),堆区(heap area)(即自由存储区)。...全局数据区存放全局变量,静态数据和常量; 所有成员函数和非成员函数代码存放在代码区; 运行函数而分配局部变量函数参数、返回数据、返回地址等存放在栈区;余下空间都被称为堆区。...根据这个解释,我们可以得知在定义时,成员函数是被放在代码区,而静态成员变量定义时就已经在全局数据区分配了内存,因而它是属于。...对于非静态成员变量,我们是在实例化过程(构造对象)才在栈区或者堆区其分配内存,是每个对象生成一个拷贝,所以它是属于对象

1.9K40

成员初始化与赋值

因此,在学习编程初期,教导者一般都会告诉我们要谨慎对待初始变量,而对于来说,最保险做法是在每一个构造函数,对每一个成员数据进行恰如其分初始化。 这么简单事情,还需要注意什么吗? ?...以上两种做法显然都可以使得在对象调用构造函数之后,保证 x 和 y 值都是确定数,但我们要牢记是,初始化(initialization)和普通赋值(assignment)语句是有区别的,他们区别是...事实上,成员数据在构造函数中被赋值之前,已经被系统进行过一次 default 初始化,因此赋值语句相当于抹掉了先前初始化执行效果,使得系统做了一次无用功。...而在构造函数运用初始化列表则可以避免这样效率浪费。 常量成员(const)和引用成员(reference)只能使用初始化列表来赋值。...rr) // 使用初始化列表来赋初值 { } 另外要注意一点,初始化次序是固定:首先初始化基(如果有的话),然后按照声明次序初始化派生每一个成员

1K20

为什么Java成员变量不能被重写?成员变量在Java能够被重写么?不会重写成员变量,而是隐藏成员变量访问隐藏域方法

这篇文章讨论了Java面向对象概念中一个基本概念--Field Hiding(成员变量隐藏) 成员变量在Java能够被重写么?...不会重写成员变量,而是隐藏成员变量 Java文档对隐藏域定义: Within a class, a field that has the same name as a field in the superclass...意思就是: 在一个,子类成员变量如果和父成员变量同名,那么即使他们类型不一样,只要名字一样。父成员变量都会被隐藏。在子类,父成员变量不能被简单用引用来访问。...而是,必须从父引用获得父被隐藏成员变量,一般来说,我们不推荐隐藏成员变量,因为这样会使代码变得难以阅读。...其实,简单来说,就是子类不会去重写覆盖父成员变量,所以成员变量访问不能像方法一样使用多态去访问。

3.5K40

C++static成员函数以及static成员变量详解「建议收藏」

static成员变量,在编程我们时常都会遇到,那么你是否对static变量以及static成员函数有一定深入认识呢?...static定义成员变量,存储区域是内存四区(栈区、堆区、全局区、代码区)全局区,在程序运行之前就已经生成在全局区,直到程序运行结束才会被系统释放。...对于static成员函数以及属性调用需要注意点有以下几个: 1.static成员函数调用成员变量(属性)只能够是static成员属性,不能够调用普通成员变量属性(因为编译器无法确定调用是哪个对象成员属性...); 2.static成员变量(属性)并不占用内存空间,static成员变量并不存储在,存储在全局区; 3.static成员变量(属性)时所有对象共同拥有的一份变量,并不属于任何一个对象成员;...4.static成员属性以及static成员函数都不存在this指针(并不属于任何一个成员); 5.static成员属性能够被继承,可以在派生访问到(前提:原有属性公有,继承公有继承),但是存储只是一份数据

80630

C++静态数据成员和静态成员函数

,如果用全局变量来描述它们相同属性,就会破坏独立性。...我们需要一个成员所有对象所公有,而且在需要更新这个公有属性时候只需修改一次。 因此,C++提供了静态数据成员来描述对象相同属性。...在定义时候非静态数据成员是不分配内存,只有在创建对象时候才分配内存,但静态数据成员是要分配内存,因为它是属于,只有一块内存,所以要初始化它,而且不能在声明初始化,必须要在外初始化...静态数据成员访问受访问权限控制。如果定义私有,则可以在内访问到。...静态成员函数 一般都是在静态成员函数修改静态数据成员,在刚刚手机声明成员函数: static void change(); 就是静态成员函数

14930

Python成员

细分类组成成员 之前咱们讲过大致分两块区域 class A: name = '陈松' # 第一部分:静态字段(静态变量)部分(这一部分调用了自己本身,表示了自己自身属性)...__add() # 派生不能访问 总结 对于这些私有成员来说,他们只能在内部使用,不能再外部以及派生中使用. ps:非要访问私有成员的话,可以通过 对象....思考:这个问题用方法做比较合适,为什么?因为我实例化是学生,但是如果我学生这一个实例 获得班级总人数,在逻辑上显然是不合理。...静态方法是函数,不需要实例。静态方法主要是用来存放逻辑性代码,逻辑上属于,但是和 本身没有关系,也就是说在静态方法,不会涉及到属性和方法操作。...可以理解,静态方 法是个独立、单纯函数,它仅仅托管于某个名称空间中,便于使用和维护。 譬如,我想定义一个关于时间操作,其中有一个获取当前时间函数

95940

static修饰成员变量函数

static成员变量又称为静态成员变量,在多个对象间共享使用,并且static静态变量在初始化时必须在外初始化,可以直接通过“名::变量”访问,哪怕是还没有生成对象时一样可以访问,以此看来static...成员变量不隶属于某个对象,而隶属于,只是所有该类对象都可以使用而已。...另外,静态成员函数不在于多个对象之间信息共享,而是在于管理static数据成员,完成对static数据成员封装。...CStatic { public: CStatic(int l, int w) { length = l; width = w; } static void set_height() { // 静态函数操作静态成员...[]) { CStatic s1(2, 5); CStatic s2(3, 9);; // s1 对象修改了共享 height 值 // s2 对象 height 值也同时被修改了 s1.set_height

13230

成员初始化和赋值内幕

定义一个变量,就是在内存你定义这个变量开辟一段内存空间,如果这个变量没有初始化,那么系统会随机给这个变量赋一个值,这个值我一般称它为"垃圾数"。...对于成员来说,我们最好做法就是在构造函数对每一个成员进行初始化。...在对象调用构造函数时候,以上两种方式都可以确保 a 和 b 值是可以确定,但是初始化和赋值两种方式是有区别的: 初始化发生时机肯定比赋值早。...成员在构造函数执行赋值语句之前已经被系统进行了初始化,当执行赋值时候就需要抹掉之前default初始化数据,这样就相当于多做了一次无用功,而构造函数运行初始化列表则不需要做这次无用功。...另外,成员初始化顺序固定:如果有基的话,先初始化基,然后按照声明顺序去初始化派生成员

38320

Java继承static成员函数重写

在java,static成员函数是否可以被重写呢? 结论是,你可以在子类重写一个static函数,但是这个函数并不能像正常非static函数那样运行。...tc1=new testClass2(); 14 testClass2 tc2 =new testClass2(); 15 tc1.SMothod(); //输出结果...static in testClass1 16 tc2.SMothod(); //输出结果 static in testClass2 17 } 18 } 结果可以看到,当我们用父实例引用...(实际上该实例是一个子类)调用static函数时,调用是父static函数。...原因在于方法被加载顺序。 当一个方法被调用时,JVM首先检查其是不是方法。如果是,则直接调用该方法引用变量所属中找到该方法并执行,而不再确定它是否被重写(覆盖)。

1.7K40

C++:30 ---C++成员成员函数内存布局

前面两篇文章我相信大家反复读了之后对这节不陌生了: 首先来看代码: class Demo { public: //静态成员变量 static const int sx = 0; //静态函数...static void SF1() { } public: //成员变量 int x; public: //成员函数 void F1() { cout << "I'm...这里要指出是大家可以看到静态成员函数和静态成员变量sx地址都是0x00007FF开头,实际上他们都在全局数据区域存储(全局变量,静态变量),如果你有耐心,可以断点查看下栈空间内局部变量i地址:...你会发现栈空间地址和全局数据区地址都不一样,这样你也理解了虚函数空间。 这样看这张图,你就知道哪些变量在哪里存储了。 ?...我想你现在根据刚才打印成员变量成员函数,虚函数表地址已经可以自己画出成员内存布局了。

1.2K20
领券