← index
cplusplus17.Examples/features/getter/getter.cpp
Source: cplusplus17.Examples/features/getter/getter.cpp
#include<iostream>
#include<string>
#include<utility>

class User {
public:
    User(std::string n) : name{n} {
        
    }
    void setName(const std::string &n) {
        name = n;
    }
    // for move
    std::string getName() && {
        return std::move(name);
    }
    const std::string &getName() const& {
        return name;
    }
    
protected:
    std::string name;
    
};

User getUser() {
    return User("value");
}

int main() {
    std::cout << "Enter name: ";
    std::string n;
    std::cin >> n;
    User u(n);
    std::cout << "Your name: " << u.getName() << "\n";
    for(char c : u.getName()) {
        std::cout << c << "\n";
    }
    for(char c : getUser().getName()) {
        std::cout << c << "\n";
    }
    std::cout << getUser().getName() << "\n";
    return 0;
}