- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做一个类(class)项目,我遇到了这些错误,如果有人能提供帮助那就太好了,我是堆栈溢出的新手,所以如果我没有正确发布内容,我深表歉意。错误状态:Shapes.cpp:35:51: error: default argument given for parameter 2 of 'bool Point::draw(Screen&, char)' [-fpermissive]bool Point::draw(Screen& scr, char ch = Screen::FG){
#ifndef Shapes_h
#define Shapes_h
#include<bits/stdc++.h>
using namespace std;
class Screen{
friend class Shape;
private:
size_t _w, _h;
vector<vector<char> > _pix;
public:
static const char FG = '*', BG = '.';
Screen(size_t w, size_t h){
_pix.resize(_h, vector<char>(_w));
}
size_t get_w() const{ return _w;}
size_t get_h() const{ return _h;}
vector<vector<char> >& get_pix() { return _pix;}
void set_w(size_t w) { _w = w;}
void set_h(size_t h) { _h = h;}
void clear() { fill(BG); }
void fill(char c); // todo cpp file
string to_string() const;
friend std::ostream& operator<<(std::ostream& os, const Screen& scr) {
return os << scr.to_string();
};
friend class Tests; // Don't remove this line
};
// SHAPE ---------------
class Shape{
public:
virtual ~Shape() {}
virtual bool draw(Screen& scr, char ch = Screen::FG) = 0;
friend class Tests;
};
class Point : public Shape {
private:
size_t _x, _y;
public:
Point(size_t x, size_t y) : _x(x), _y(y) {}
virtual ~Point() {}
bool draw(Screen& scr, char ch = Screen::FG);
friend class Tests;
};
class Line: public Shape{
private:
size_t _x1, _y1, _x2, _y2;
static bool draw_by_x(Screen& scr, char ch, size_t x1, size_t y1, size_t x2, size_t y2){
if (x2>x1){
draw_by_x(scr, ch, x2, y2, x1, y1);
}
double dy = (double) ((double)y2-y1)/((double)x2-x1);
size_t x = x1;
size_t y = y1;
bool boo = true;
for (size_t i = x1; i <= x2; i++){
boo &= Point((size_t)x, (size_t) y).draw(scr, ch);
x++; y += dy;
}
return boo;
}
static bool draw_by_y(Screen& scr, char ch, size_t x1, size_t y1, size_t x2, size_t y2){
if (x2>x1){
draw_by_x(scr, ch, x2, y2, x1, y1);
}
double dx = (double) ((double)x2-x1)/((double)y2-y1);
size_t x = x1;
size_t y = y1;
bool boo = true;
for (size_t i = x1; i <= x2; i++){
boo &= Point((size_t)x, (size_t) y).draw(scr, ch);
x += dx; y += 1;
}
return boo;
}
public:
Line(size_t a, size_t b, size_t c, size_t d) : _x1(a), _y1(b), _x2(c), _y2(d) {}
virtual ~Line() {}
bool draw(Screen& scr, char ch = Screen::FG);
friend class Tests; // Don't remove
};
class Quadrilateral: public Shape {
private:
size_t _x1, _y1, _x2, _y2, _x3, _y3, _x4, _y4;
public:
Quadrilateral(size_t a, size_t b, size_t c, size_t d, size_t e, size_t f, size_t g, size_t h):
_x1(a), _y1(b), _x2(c), _y2(d), _x3(e), _y3(f), _x4(g), _y4(h) {}
virtual ~Quadrilateral() {}
bool draw(Screen& scr, char ch = Screen::FG);
friend class Tests; // Don't remove
};
class Upright_Rectangle : public Quadrilateral {
public:
Upright_Rectangle(size_t x1,size_t y1, size_t x2, size_t y2) :
Quadrilateral(x1,y1, x1,y2, x2,y2, x2,y1) {}
virtual ~Upright_Rectangle() {}
};
class Stick_Man : public Shape{
static const size_t DEFAULT_W = 20, DEFAULT_H = 40;
private:
size_t _x, _y, _w, _h;
vector < Shape* > _parts;
public:
Stick_Man(size_t x = 0, size_t y = 0, size_t w = DEFAULT_W, size_t h = DEFAULT_H){
}
virtual ~Stick_Man();
const std::vector<Shape *>& get_parts() const { return _parts; }
bool draw(Screen& scr, char ch = Screen::FG){
return"";
}
friend class Tests; // Don't remove
};
#endif /* Shapes_h */
这是我的 CPP:
#include "Shapes.h"
#include<bits/stdc++.h>
#define pb push_back
using namespace std;
void Screen::fill(char c){
for (size_t i = 0; i < _h; i++){
for (size_t j = 0; j < _w; j++){
_pix[i][j] = c;
}
}
return;
}
void Screen::clear(char c){
fill(c);
return;
}
string Screen::to_string()const{
string ans = "";
for (size_t i = _h-1; i >= 0; i--){
for (size_t j = 0; j < _w; j++){
ans += _pix[i][j];
}
ans += "\n";
}
return ans;
}
bool Point::draw(Screen& scr, char ch = Screen::FG){
if (_x < scr.get_h() && _y < scr.get_w()){
scr.get_pix()[_x][_y] = ch;
return true;
}
return false;
}
bool Line::draw(Screen& scr, char ch = Screen::FG){
if (abs(int(_x1-_x2)) > abs(int(_y1-_y2))) return draw_by_x(scr, ch, _x1, _y1, _x2, _y2);
return draw_by_y(scr, ch, _x1, _y1, _x2, _y2);
}
bool Quadrilateral::draw(Screen& scr, char ch = Screen::FG){
size_t x1, y1, x2, y2, x3, y3, x4, y4;
x1 = _x1;
x2 = _x2;
x3 = _x3;
x4 = _x4;
y1 = _y1;
y2 = _y2;
y3 = _y3;
y4 = _y4;
if ((x2-x3)==(x4-x1) && (y2-y3)==(y4-y1)){
swap(x2, x3);
swap(y2, y3);
}
else if ((x4-x3)==(x2-x1) && (y4-y3)==(y2-y1)){
swap(x4, x3);
swap(y4, y3);
}
bool boo = true;
boo &= Line(x1, y1, x2, y2).draw(scr, ch);
boo &= Line(x2, y2, x3, y3).draw(scr, ch);
boo &= Line(x3, y3, x4, y4).draw(scr, ch);
return boo;
}
最佳答案
从定义中删除默认参数。而不是
bool Point::draw(Screen& scr, char ch = Screen::FG){
if (_x < scr.get_h() && _y < scr.get_w()){
scr.get_pix()[_x][_y] = ch;
return true;
}
改成
bool Point::draw(Screen& scr, char ch){
if (_x < scr.get_h() && _y < scr.get_w()){
scr.get_pix()[_x][_y] = ch;
return true;
}
你得到这个错误的原因是因为你已经在这里的类中声明并定义了绘图函数
bool draw(Screen& scr, char ch = Screen::FG){
return"";
}
将此更改为
bool draw(Screen& scr, char ch = Screen::FG){
}
你不会再得到重定义错误了。
关于c++ - 错误 : default argument given for parameter 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60896087/
例如,如果我的程序名称是 test.c 然后对于以下运行命令,argc = 2 而不是 4。 $test abc pqr* *xyz* 最佳答案 尝试运行: $ echo abc pqr* *xyz*
我正在尝试使用一个容器来显示TextField,但是该容器不喜欢我的操作顺序。这是我的代码: Widget build(BuildContext context) { return Scaffol
我有以下代码: class MetricGoogleGateway extends AMetricGateway{ constructor(id, name, token) {
我像这样调用下面的对象方法。 new Cout( elem1 ).load( 'body' ) new COut( elem1 ).display( 'email' ) 我一次只使用一个实例。因为我一
我正在尝试使用 C++11 中的可变参数函数模板,并通过如下代码了解了基本思想: void helper() { std::cout void helper( T&& arg ) {
在学习 ExtJS 4 时,我发现在定义一个新类时,在 initComponent 中方法可以使用 this.callParent(arguments) 调用父类的构造函数. 我想知道这个 argum
使用 XCode 9,Beta 3。Swift 4。 statsView.createButton("Button name") { [weak self] Void in //stuff st
以下代码将打印1: (function (arguments) { console.log(arguments); }(1, 2)); 实际上,arguments 对象已被覆盖。是否可以恢复函
/** * @param $name * @return Response * @Route ("/afficheN/{name}",name="afficheN") */ public fu
我习惯使用Scala scopt用于命令行选项解析。您可以选择参数是否为 .required()通过调用刚刚显示的函数。 如何定义仅在定义了另一个参数时才需要的参数? 例如,我有一个标志 --writ
所以这是我的代码: def is_valid_move(board, column): '''Returns True if and only if there is an o
我试图在这里运行此代码: threads = [threading.Thread(name='ThreadNumber{}'.format(n),target=SB, args(shoe_type,m
在静态类型函数编程语言(例如 Standard ML、F#、OCaml 和 Haskell)中,编写函数时通常将参数彼此分开,并通过空格与函数名称分开: let add a b = a + b
function validateArguments(args) { if(args.length 2) { throw new RangeError("Invalid amo
我正在使用 Django 1.5 并尝试将参数传递到我的 URL。当我使用前两个参数时,下面的代码工作正常,使用第三个参数时我收到错误。我已经引用了新的 Django 1.5 更新中的 url 用法,
我刚刚开始使用 ember js 并且多次被这个功能绊倒 有人可以简要介绍一下 this._super() 的使用,并解释 ...arguments 的重要性 谢谢 最佳答案 每当您覆盖类/函数(例如
这个问题在这里已经有了答案: How to fix an "Argument passed to call that takes no arguments" error? (2 个答案) 关闭 3
我正在创建一个简单的登录注册应用程序。但是我遇到了错误,我不知道如何解决,请帮忙!这是我的代码: // // ViewController.swift // CHLogbook-Applicati
我是 Swift 的初学者。我尝试创建一个表示 Meal 的简单类。 它有一些属性和一个返回可选的构造函数 但是当我尝试测试它或在任何地方实例化它时,我得到的只是一个错误。似乎无法弄清楚发生了什么。
我有一个在特殊环境下运行其他程序的系统程序: cset shield -e PROGRAM .现在要运行一个 java 程序,我输入了 cset shield -e java PROGRAM ,但这不
我是一名优秀的程序员,十分优秀!