cpp/c++ class attributes
A c++ class attribute is a variable that belongs to that class. Attribute can be simply thought as feature . But why is a variable of a class called attribute ? You can compare attribute with method to understand it.
class chat_robot { public: std::string name = "chat_robot"; public: void speak() { std::cout << "Please talk to me, I am a chat robot!" << std::endl; } };
The class chat_robot has an attribute: name ;
and it has a method: speak .
Now think of it:
I think you understand why it is called attribute now.
You can add another method to change the attribute value of the class:
public: void set_name(std::string new_name) { name = new_name; }
You see that a method can have input arguments, and the input is assigned to attribute:
name = new_name;
You can add another method to get the attribute value of the class:
public: std::string get_name() { return name; }
You see that the attribute value is returned by return statement:
return name;
Save as chat_robot.cpp
#include <iostream> #include <string> // cpp/c++ code class chat_robot { public: std::string name = "chat_robot"; public: void speak() { std::cout << "Please talk to me, I am a chat robot!" << std::endl; } void set_name(std::string new_name) { name = new_name; } std::string get_name() { return name; } }; int main() { auto robot_no_1 = chat_robot{}; robot_no_1.speak(); std::cout << "name: " << robot_no_1.get_name() << std::endl; robot_no_1.set_name("robot"); std::cout << "name: " << robot_no_1.get_name() << std::endl; }
Compile and run:
$ g++ chat-robot.cpp -std=c++23 -o chat-robot $ ./chat-robot Please talk to me, I am a chat robot! name: chat_robot name: robot
This article explained the attributes of cpp class, it has only three points, no stress:
Written on Aug 04, 2024
c++ std::exception:
std::cout.write(err.data(), err.size());
std::cout << std::endl;
caught:
================================================== # The c++ programming language. # # # # Home: cppfx.xyz # # Join c++ Discord: yZcauUAUyC # # Deck # ==================================================