最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。
【 tulaoshi.com - 编程语言 】
// this function defines the variable "encrypted" too soon
  std::string encryptPassword(const std::string& password)
  {
    using namespace std;
  
    string encrypted;
  
    if (password.length()  MinimumPasswordLength) {
   throw logic_error("Password is too short");
    }
    ... // do whatever is necessary to place an
    // encrypted version of password in encrypted
    return encrypted;
  }// this function postpones encrypted’s definition until it’s truly necessary
  std::string encryptPassword(const std::string& password)
  {
    using namespace std;
  
    if (password.length()  MinimumPasswordLength) {
   throw logic_error("Password is too short");
    }
  
    string encrypted;
    
    ... // do whatever is necessary to place an
    // encrypted version of password in encrypted
    return encrypted;
  }void encrypt(std::string& s); // encrypts s in place// this function postpones encrypted’s definition until
  // it’s necessary, but it’s still needlessly inefficient
  std::string encryptPassword(const std::string& password)
  {
    ... // check length as above
  
    std::string encrypted; // default-construct encrypted
    encrypted = password; // assign to encrypted
  
    encrypt(encrypted);
    return encrypted;
  }// finally, the best way to define and initialize encrypted
  std::string encryptPassword(const std::string& password)
  {
    ... // check length 
  
    std::string encrypted(password); // define and initialize
    // via copy constructor
  
    encrypt(encrypted);
    return encrypted;
  }// Approach A: define outside loop // Approach B: define inside loop
  
  Widget w;
  for (int i = 0; i  n; ++i){ for (int i = 0; i  n; ++i) {
  w = some value dependent on i; Widget w(some value dependent on i);
  ... ...
  } }来源:http://www.tulaoshi.com/n/20160219/1604250.html
看过《C++箴言:只要有可能就推迟变量定义》的人还看了以下文章 更多>>