有意思的成员变量

V1 最开始的时候,这样定义成员变量
    class EmployeeV1
    {
        public string Name;
    }

V2 后来别人说,数据要隐藏,他们这样教我。于是每个成员变量都要配两个成员方法,就像两个保镖:一个用来给成员变量赋值;一个用来读取成员变量的值。
    class EmployeeV2
    {
        private string Name;
        public void SetName(string newName)
        {
          //我喜欢在这设置断点,有人还喜欢在这检查newName的有效性
            Name = newName;
        }
        public string GetName()
        {
            return Name;
        }
    }
V3  再后来,他们说V2好傻,干脆发明了 属性(Property) 专门干这种事。还能用IDE的重构功能,不用手敲Property,不错。
    class EmployeeV3
    {
        p
        rivate string name;
        public string Name
        {
            get
            {
             return name;
            }
            set
            {
              //同样可以设断点
             name = value;
            }
        }
    }
V4 接下来,他们发现V3更傻,软件中到处充斥着无聊的代码。于是他们体贴地升级了编译器,只要一行代码就能取代V3。
    class EmployeeV4
    {
        //我的断点怎么没有了?
        public string Name { get; set; }
    }
V5 返祖了。
    class EmployeeV5
    {
        public string Name;
    }
有些东西必须要public的,不论是直接或间接。
实现链表反转 当然,我可以帮助小明同学实现这个功能。 首先,我们需要定义一个链表的结构体,包含两个成员变量:一个是节点的值,一个是指向下一个节点的指针。代码如下: ```C++ struct ListNode { int val; ListNode* next; }; ``` 接下来,我们可以实现链表的创建和打印函数。这里我们简单起见,先手动构造一个链表,包含四个节点,节点的值依次为1、2、3、4。代码如下: ```C++ ListNode* create_list() { ListNode* head = new ListNode{1, nullptr}; head->next = new ListNode{2, nullptr}; head->next->next = new ListNode{3, nullptr}; head->next->next->next = new ListNode{4, nullptr}; return head; } void print_list(ListNode* head) { while (head != nullptr) { std::cout << head->val << " "; head = head->next; } } ``` 现在我们已经创建了一个包含四个节点的链表,接下来我们可以实现反转链表的功能。代码如下: ```C++ ListNode* reverse_list(ListNode* head) { ListNode* prev = nullptr; ListNode* cur = head; while (cur != nullptr) { ListNode* next = cur->next; cur->next = prev; prev = cur; cur = next; } return prev; } ``` 我们定义两个指针prev和cur,分别指向节点的前一个和当前节点。通过循环,不断将当前节点的next指针指向前一个节点prev,更新prev和cur的位置,最终返回prev即为反转后的链表。 最后,我们可以在主函数中调用这些函数,实现链表反转的功能。代码如下: ```C++ int main() { ListNode* head = create_list(); print_list(head); std::cout << std::endl; head = reverse_list(head); print_list(head); return 0; } ``` 输出结果为: ``` 1 2 3 4 4 3 2 1 ``` 我们成功实现了链表反转的功能!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值