我学了一点 C#,现在我正在学习 C++。在 C# 中,数据隐藏可以使用 get 和 set 运算符来完成,通过提供“get”而不是“set”,可以将数据成员呈现为“只读”。
这将允许一个类 (Person) 包含另一个类 (Account),这样 Account 类的公共函数对 Person.Account 的用户可用,但用户不能直接更改 Account 类,因为它是读取的 -只要。
这在下面的代码示例中应该更清楚。
我的问题是,由于 C++ 不提供漂亮的 get/set 语法,是否有与下面代码类似的 C++?
using System;
class Person
{
private string _Name;
public string Name { get { return _Name; } set { _Name = value; } }
private Account _Account;
public Account Account { get { return _Account; } }
public Person()
{
_Name = "";
_Account = new Account();
}
}
class Account
{
private decimal _Balance;
public decimal Balance { get { return _Balance; } }
public Account()
{
_Balance = 0;
}
public void Deposit(decimal deposit)
{
_Balance += deposit;
}
}
class Program
{
static void Main(string[] args)
{
Person p = new Person();
p.Name = "John Doe";
// not allowed: p.Account = new Account();
// Property or indexer 'CSharp.Person.Account' cannot be assigned to -- it is read only
// allowed: the Account Object's public functions are available
p.Account.Deposit(1000);
Console.WriteLine(p.Account.Balance.ToString());
// console says "1000"
}
}