小编eri*_*rip的帖子

将const引用传递给函数

我正在观看视频,看到了这段代码:

class Dog {
    public:
        Dog() : age(3), name("dummy") {} 
        void setAge(const int &a) { age = a; } 
    private:
        int age;
        std::string name;
};
Run Code Online (Sandbox Code Playgroud)

我对函数签名感到好奇,setAge因为我从未将其const用作函数参数.我看了几个相关的答案,但没有一个似乎回答了我的问题.

在这样一个基本的例子中,很难看到将const引用传递给函数的好处.

是否有任何理由为什么你要做出参考一个const?我能想到的唯一应用就是嵌入式编程,在制作变量副本时会浪费宝贵的空间.

是否有任何简单的例子,通过const引用很容易看到影响?

c++ const reference

1
推荐指数
2
解决办法
4041
查看次数

Python 2.7简介.到类:"'模块'对象不可调用"

我得到了一个学校作业,这是对面向对象编程的介绍.我真的很接近解决这个问题,我猜这个语法有些问题.也许你们中的一些专业人员确切知道问题是什么?

我上课了:

class CashRegister():
    __taxRate = 0
    __numProductsSold = 0
    __totalRevenue = 0.0
    __taxAmount = 0.0
    __soldProducts = []

    def __init__(self, taxRate):
        self.__taxRate = taxRate

    def getNumProductsSold(self):
        return self.__numProductsSold

    def getTotalRevenue(self):
        return self.__totalRevenue

    def getTaxAmount(self):
        return self.__taxAmount

    def getSoldProducts(self):
        return self.__soldProducts

    def addItem(self, product, price):
        self.__numProductsSold +=1
        self.__totalRevenue += price
        self.__taxAmount += price * self.__taxRate
        self.__soldProducts.append(product)
Run Code Online (Sandbox Code Playgroud)

我试着在这里打电话:

import CashRegister

def main():
    testRegister = CashRegister(22)
    testProduct = "Mat"
    testRegister.addItem(testProduct, 23.99)
    print testRegister.getTotalRevenue ()

if __name__ == '__main__':
    main();
Run Code Online (Sandbox Code Playgroud)

有谁发现了这个问题?如标题所示获取错误消息.

python oop module class

1
推荐指数
1
解决办法
181
查看次数

这两个正则表达式语句之间有什么区别

([1|2|3|4|5|6|7|8|9])(1|2|3|4|5|6|7|8|9)

我想检查思科交换机的每个端口是否有一组指定的命令.端口编号为1到9.使用正则表达式我希望代码选择每个数字以验证配置.

regex

1
推荐指数
1
解决办法
88
查看次数

如何对不可变值进行可变引用

我刚刚开始学习一点Rust,并且对变量的可变性概念非常感兴趣.

我正在尝试编写与此C++程序非常相似的内容.

#include <cstdio>

void do_something(int &var) {
   var++;
}

int main() {

    int a = 3;
    int b = a;
    printf("a is %d and b is %d\n", a, b);
    do_something(b);
    printf("a is %d and b is %d\n", a, b);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我希望看到:

a是3,b是3

a是3,b是4

这个想法是传递引用呈现b可变,但a不可变.

以下是我假设在Rust中编写此程序的方法:

fn main() {
    let a: i32 = 3;
    let b: &mut i32 = &a;

    println!("a is {} and b is {}", a, b);
    do_something(b);
    println!("a is {} and …
Run Code Online (Sandbox Code Playgroud)

mutable pass-by-reference rust

1
推荐指数
1
解决办法
1551
查看次数

Javascript vs C++,相同的代码,不同的结果,为什么呢?

我正在进行代码挑战,我发现我的代码发生了一些奇怪的事情,所以我用C++运行它

function sumPrimes (num)
{
    var sum=0;
    for(var i=2; i<num; i++)
    {
        if(primeNumber(i)===true)
            sum+=i;
    }
    return sum;
}


function primeNumber (i)
{
    if(i==2 || i==3 || i==5 || i==7)
        return true;
    if(i%2!=0 && i%3!=0 && i%5!=0 && i%7!=0)
        return true;
}

sumPrimes(977);
Run Code Online (Sandbox Code Playgroud)

这给了我107812的结果,但是当我用C++做同样的事情时

#include <iostream>
using namespace std;
bool primeNumber(int);
int sumPrimes(int);
int main()
{
    int n;
    cout << "n: ";
    cin >> n;
    cout << "Sum : " << sumPrimes(n) << endl;
    system("PAUSE>=0");
}
int sumPrimes(int n)
{
    int …
Run Code Online (Sandbox Code Playgroud)

javascript c++

1
推荐指数
1
解决办法
119
查看次数

如何显示json的特定部分?

有人可以帮我解决这个python api调用程序吗?

import json
from pprint import pprint
import requests
weather = requests.get('http://api.openweathermap.org/data/2.5/weather?    
q=London&APPID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
pprint(weather.json())

wjson = weather.read()
wjdata = json.load(weather)
print (wjdata['temp_max'])
Run Code Online (Sandbox Code Playgroud)

所以使用这段代码,我试图从天气api获取信息,它正确打印它,但当我想选择某些值时,我得到这个错误.

Traceback (most recent call last):
  File "gawwad.py", line 7, in <module>
    wjson = weather.read()
AttributeError: 'Response' object has no attribute 'read'
Run Code Online (Sandbox Code Playgroud)

python api json

1
推荐指数
1
解决办法
156
查看次数

Django Rest Framework 测试保存 POST 请求数据

我正在为我的 Django Rest Framework 编写一些测试,并试图使它们尽可能简单。之前,我使用 factory boy 创建对象,以便保存可用于 GET 请求的对象。

为什么我在测试中的 POST 请求没有在我的测试数据库中创建实际对象?使用实际 API 一切正常,但我无法在测试中获取 POST 以保存对象以使其可用于 GET 请求。有什么我想念的吗?

from rest_framework import status
from rest_framework.test import APITestCase

# from .factories import InterestFactory


class APITestMixin(object):
    """
    mixin to perform the default API Test functionality
    """
    api_root = '/v1/'
    model_url = ''
    data = {}

    def get_endpoint(self):
        """
        return the API endpoint
        """
        url = self.api_root + self.model_url
        return url

    def test_create_object(self):
        """
        create a new object
        """
        response = self.client.post(self.get_endpoint(), self.data) …
Run Code Online (Sandbox Code Playgroud)

django django-testing django-rest-framework

0
推荐指数
1
解决办法
3365
查看次数

在当前范围内没有为`regex :: re :: Regex`类型找到名为`unwrap`的方法

我试图找到Rust中正则表达式的所有匹配范围,并在文档中找到了一个非常有前景的方法.这是我找到的示例用法

let text = "Retroactively relinquishing remunerations is reprehensible.";
for pos in Regex::new(r"\b\w{13}\b").unwrap().find_iter(text) {
    println!("{:?}", pos);
}

// Output:
// (0, 13)
// (14, 27)
// (28, 41)
// (45, 58)
Run Code Online (Sandbox Code Playgroud)

我试图在库中的任意正则表达式上模拟这种行为.这是我的代码.

Cargo.toml(相关部分)

[dependencies]
regex = "0.1"
Run Code Online (Sandbox Code Playgroud)

lib.rs

extern crate regex;
pub mod tokenize;
Run Code Online (Sandbox Code Playgroud)

记号化/ mod.rs

extern crate regex;
pub mod util;
Run Code Online (Sandbox Code Playgroud)

记号化/ util.rs

extern crate regex;
use regex::Regex;

pub fn regexp_span_tokenize(s: &str, regexp: regex::Regex) -> Vec<(i32, i32)> {
    return regexp.unwrap().find_iter(s);
}
Run Code Online (Sandbox Code Playgroud)

当我发出时cargo build,我收到以下错误:

tokenize/util.rs:38:19: 38:27 …
Run Code Online (Sandbox Code Playgroud)

regex rust

0
推荐指数
1
解决办法
631
查看次数

为什么 auto 不检测函数的引用类型

我用方法创建了一个类,它返回对成员的引用(封装不好)。我正在使用自动重新调整功能

class classA
{
    public:
    classA(classA & rhs)
    {
        cout<<"copy constr A"<<endl;
    };
    classA() = default;
};

class classB
{
    private:
    classA obA;
    public:
        classA& getRefA(){return obA;}
};

int main()
{
    classB obB;

    auto ob = obB.getRefA();
 }
Run Code Online (Sandbox Code Playgroud)

结果是复制构造A

我知道 auto 不会检测函数的引用。自动检测是否只检测类型而不参考?

c++ reference auto c++14

0
推荐指数
1
解决办法
562
查看次数

如何在循环中改变容器中的元素?

有一个对象列表并按每个对象调用一个函数,但是canot保留了上下文,例如:

std::list<Ob> objs;
Ob ob;
ob.settings(/*...*/);
objs.push_back(ob);
/*...*/
for (Ob obj : objs)
{
    obj.increase();
}
Run Code Online (Sandbox Code Playgroud)

increase()函数总结一个局部变量,例如:

class Ob
{
    private:
        int a = 0;
Run Code Online (Sandbox Code Playgroud)

而......

Ob::increase(){ this->a++; }
Run Code Online (Sandbox Code Playgroud)

a只增加内循环,如果调用10次canot保持最后一个值.

如何保持对象的上下文?

c++

0
推荐指数
1
解决办法
70
查看次数