- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我无法理解 C++ 语法的工作原理。
#include
sử dụng không gian tên std;
class Accumulator{
riêng tư:
int value;
công cộng:
Accumulator(int value){this->value=value;}
Accumulator& add(int n){value+=n;}
int get(){return value;};
};
int main(int argc, char* argv[]){
Accumulator acc(10);
acc.add(5).add(6).add(7); //<-----how does this work?????
cout<<>
trả về 0;
}
这一行:acc.add(5).add(6).add(7);它是从左到右还是以其他方式工作像 acc.add(5) 先做,然后做 add(6)我不明白。
结果应该是 28。
Cảm ơn trước.
编辑:很奇怪,这段代码在 g++ 上编译成功,没有任何错误。我从一些非英语大学 C++ 教科书中得到这段代码。英语不是我的第一语言。
第二次编辑:我现在在使用 -Wall 选项后收到所需的警告。
câu trả lời hay nhất
您的代码无法编译,但如果编译通过,它会从左到右运行。 Thêm vào
返回对 Accumulator
的引用(它在您的代码中没有返回值,但它可能应该返回 *this
)所以在你打电话之后
acc.add(5)
返回值是对acc
的引用,你可以再次调用thêm vào
。
这是一个修改后的示例,添加了 mult
以显示操作顺序:
#include
sử dụng không gian tên std;
class Accumulator{
riêng tư:
int value;
công cộng:
Accumulator(int value){ this->value = value; }
Accumulator& add(int n){ value += n; return *this; }
Accumulator& mult(int n){ value *= n; return *this; }
int get(){ return value; };
};
int main(int argc, char* argv[]){
Accumulator acc(10);
acc.add(5).add(6).mult(7);
cout << acc.get();
trả về 0;
}
如果从右到左,结果将是 81
,但从左到右,结果将是 147
。
关于c++ - object.function().function().function().......这是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30169596/
Tôi đang làm theo hướng dẫn trong cuốn sách có tên "Sitepoint Full Stack Javascript with MEAN" và tôi vừa hoàn thành Chương 6, lẽ ra phải tạo một "máy chủ" với một "cơ sở dữ liệu". Cơ sở dữ liệu không là gì ngoài
Trong Jquery, tôi tạo hai mảng, một mảng được nhúng vào mảng kia, như thế này... arrayOne = [{name:'a',value:1}, {name:'b',value:2 }]vararra
Câu hỏi này đã có câu trả lời ở đây: Lời giải thích cho những hành vi JavaScript kỳ quái này được đề cập trong 'Wa
Tôi đã sử dụng mã của người khác và có một lớp được sử dụng làm cơ sở cho các thành phần khác. Khi tôi thử ng phục vụ --aot (hoặc build --prod), tôi nhận được thông báo sau. @Thành phần({ ...,
Tôi đang kiểm tra một số mã và đã tạo tệp json chứa dữ liệu. Vấn đề là tôi nhận được "[đối tượng đối tượng], [đối tượng đối tượng]" trong cảnh báo. Không có dữ liệu. Tôi đã làm gì sai? Đây là mã:
Tôi muốn in [đối tượng đối tượng],[đối tượng đối tượng] một cách khôn ngoan "[[{ 'x': '1', 'y': '0' }, { 'x': '2', 'y': '1 ' }]]"; ở ja
Tôi có một Chế độ xem chức năng mà tôi đang cố gắng xuất theo cách được định dạng đặc biệt. Nhưng tôi không thể làm cho chức năng danh sách hoạt động bình thường. Điều duy nhất tôi nhận được là [đối tượng đối tượng] [đối tượng đối tượng] [đối tượng đối tượng]
Trong khi làm việc trên một dự án WebGL bằng cách sử dụng các thư viện Sim.js và Three.js tuyệt vời, tôi đã gặp phải vấn đề tiếp theo: trong quá trình thực hiện, nó đã sử dụng hàm tạo tiếp theo của THREE.Ray: var ray = new THRE
Tôi đang sử dụng Material UI để thực hiện nhiều lựa chọn. Đây là mã của tôi. {listStates.map(col => (
Mã của tôi sử dụng ajax: $("#keyword").keyup(function() { var keywords = $("#keyword").val(); if (keyword.
Tôi gặp lỗi tiếp theo và không biết cách khắc phục. Không thể giải quyết tất cả các tham số cho AuthenticationService: ([đối tượng đối tượng], ?, [o
Tôi đang cố gắng tạo một biểu mẫu hiển thị các hộp kiểm động, ít nhất một trong số đó phải được chọn để tiếp tục. Tôi cũng cần có một bộ hộp kiểm tra. Đây là mã của thành phần: import { Component, OnInit } from '@angul
Tôi đang phát triển ứng dụng NodeJs, một ứng dụng blog. Tôi đang sử dụng trình xác thực nhanh và tôi đang cố gắng xác thực dữ liệu bằng tin nhắn flash trước khi lưu bài đăng vào cơ sở dữ liệu bằng tin nhắn flash nhanh ở phía giao diện người dùng, tôi đang lưu thành công dữ liệu trong cơ sở dữ liệu nhưng nó sẽ bị hủy sau khi gửi biểu mẫu.
Tôi biết một số người đã hỏi câu hỏi tương tự và nhận được câu trả lời. Tôi đã xem tất cả nhưng vẫn không thể giải quyết được vấn đề của mình. Tôi có một đoạn mã jquery gửi một giá trị đến một trình xử lý xử lý giá trị từ JS và lấy dữ liệu dưới dạng số JSON
Tôi kế thừa một dự án rất cẩu thả và tôi được giao nhiệm vụ giải thích tại sao nó lại tệ. Tôi nhận thấy rằng họ thực hiện những so sánh như thế này trong suốt mã (IQueryable).FirstOrDefault(x => x.Facility == fac
Tôi vừa tình cờ phát hiện ra điều này khi xóa các đối tượng trong một mảng. Mã như sau: Friends = []; Friends.push( { a: 'Nexus', b: 'Muffi
Sự khác biệt giữa hai đoạn mã này là gì: object = nil; [phát hành đối tượng] so với [phát hành đối tượng]; Cách thực hành tốt nhất là gì? câu trả lời hay nhất
Tôi nên chuyển tham số nào cho đối tượng cha đầu tiên mà đối tượng khác sẽ kế thừa và tham số nào hiệu quả hơn Object.create(Object.prototype) Object.create(Object) Object.creat
Tôi sắp xếp các bộ chọn khác nhau trên các đối tượng khác nhau [self performanceSelector:@selector(doSmth) withObject:objectA afterDelay:1];
Sự khác biệt giữa NSLog(@"%p", &object); và NSLog(@"%p", object); là gì? Cả hai dường như in ra một địa chỉ bộ nhớ, nhưng tôi không chắc đâu là địa chỉ bộ nhớ thực của đối tượng. Câu trả lời hay nhất Đây là điều tôi thích
Tôi là một lập trình viên xuất sắc, rất giỏi!