CRTP(C ++)的各种错误(Various errors with CRTP (C++))
我知道我刚问过这个问题,但我无法弄清楚我做错了什么。 我只重写了小部分并且找不到任何错误( 在父级返回子中使用C ++函数作为参考)
我的代码:
#include <iostream> #include <stdlib.h> #include <cstring> using namespace std; template<class Derived> class Entity { private: string _name; public: const string& name() const; Derived& name( const string& ); Derived* This() { return static_cast<Derived*>(this); } }; class Client : Entity<Client> { private: long int _range; public: const long int& range() const; Client& range( const long int& ); }; const string& Entity::name() const { return _name; } Derived& Entity::name(const string& name) { _name = name; return *This(); } const long int& Client::range() const { return _range; } Client& Client::range( const long int& range ) { _range = range; return *this; } int main() { Client ().name("Buck").range(50); return 0; }
结果:
untitled:25: error: ‘template<class Derived> class Entity’ used without template parameters untitled:25: error: non-member function ‘const std::string& name()’ cannot have cv-qualifier untitled: In function ‘const std::string& name()’: untitled:26: error: ‘_name’ was not declared in this scope untitled: At global scope: untitled:29: error: expected constructor, destructor, or type conversion before ‘&’ token untitled: In function ‘int main()’: untitled:13: error: ‘Derived& Entity<Derived>::name(const std::string&) [with Derived = Client]’ is inaccessible untitled:44: error: within this context untitled:44: error: ‘Entity<Client>’ is not an accessible base of ‘Client’
我会非常感谢答案(我的无能可能是由于睡眠剥夺而导致的:D)
I know I've just asked a question about this, but I cannot figure out what I'm doing wrong. I've rewritten just the small part and cannot find any errors (used C++ function in parent return child as reference)
My code:
#include <iostream> #include <stdlib.h> #include <cstring> using namespace std; template<class Derived> class Entity { private: string _name; public: const string& name() const; Derived& name( const string& ); Derived* This() { return static_cast<Derived*>(this); } }; class Client : Entity<Client> { private: long int _range; public: const long int& range() const; Client& range( const long int& ); }; const string& Entity::name() const { return _name; } Derived& Entity::name(const string& name) { _name = name; return *This(); } const long int& Client::range() const { return _range; } Client& Client::range( const long int& range ) { _range = range; return *this; } int main() { Client ().name("Buck").range(50); return 0; }
The result:
untitled:25: error: ‘template<class Derived> class Entity’ used without template parameters untitled:25: error: non-member function ‘const std::string& name()’ cannot have cv-qualifier untitled: In function ‘const std::string& name()’: untitled:26: error: ‘_name’ was not declared in this scope untitled: At global scope: untitled:29: error: expected constructor, destructor, or type conversion before ‘&’ token untitled: In function ‘int main()’: untitled:13: error: ‘Derived& Entity<Derived>::name(const std::string&) [with Derived = Client]’ is inaccessible untitled:44: error: within this context untitled:44: error: ‘Entity<Client>’ is not an accessible base of ‘Client’
I'd be very grateful for answers (my incompetence might be due to sleep deprivation though :D)
原文:https://stackoverflow.com/questions/8576972
更新时间:2022-01-17 10:01
最满意答案
问题是我从
createSelectLocationHistory
而不是prevRoutingStateJS
返回prevRoutingStateJS
。The problem was that I was returning
prevRoutingState
fromcreateSelectLocationHistory
rather thanprevRoutingStateJS
.
相关问答
更多-
react-router-redux:路由改变,但组件不显示(react-router-redux: Routes change but components are not displayed)[2024-02-13]
问题是我从createSelectLocationHistory而不是prevRoutingStateJS返回prevRoutingStateJS 。 The problem was that I was returning prevRoutingState from createSelectLocationHistory rather than prevRoutingStateJS. -
我有同样的问题,基本上它是来自react-router-redux v5.0.0-alpha.2和alpha.3的ConnectedRouter的错误 过去几天它一直在积极讨论,但现在已经修复了alpha 4并且问题已经结束: https://github.com/ReactTraining/react-router/issues/4713 I am having the same issue and basically it's a bug with the ConnectedRouter from re ...
-
import { Redirect } from 'react-router-dom' 在动作接收到来自服务器的响应并分派响应之后,侦听服务器的响应是否可用,并在渲染函数中返回重定向 render () { .... //render logic if (responseFromServer) {
.... // rest of the render function and return statement } 更新根据您的评论 我会在ab ... -
react-router-redux 5:跨导航维护商店状态历史记录(react-router-redux 5: Maintaining store state history across navigation)[2023-12-12]
所以你想让你的UI直接依赖于历史状态。 不幸的是,这与现有的用于反应路由器的redux包装相当复杂。 所以当历史记录发生变化时,你的App组件将会收到一个道具更新。 您必须以某种方式将这些新道具转发给应对这些道具做出反应的组件。 例如,您可以将新信息分发给App组件的componentWillReceiveProps方法中的商店。 或者你可以通过多个组件图层将它转发到需要的地方,但我建议不要这样做。 或者,请尝试https://github.com/mksarge/redux-first-routing , ... -
您可以使用高阶组件将数据提取并注入顶级组件。 然后你可以通过React.cloneElement ( 这里的例子 )将道具传递给子路径。 HOC const FetchHOC = url => Component => class extends React.Component() { state = { data: null }; componentDidMount() { fetch(url).then(data => this.setState({ data })); ...
-
状态不会在路由更改时重置 - React-redux-router(State doesnt get reset on route change - React-redux-router)[2022-08-06]
将位置更改为LOCATION_CHANGE的情况添加到您的ItemsPerPageReducer以重置计数: import * as ACTION_TYPES from '../consts/action_types'; import { LOCATION_CHANGE } from 'react-router-redux'; const initialState = { items: 10, }; export const itemsPerPageReducer = (state = initi ... -
Redux使用react-router-redux连接“块”导航(Redux connect “blocks” navigation with react-router-redux)[2021-07-08]
请参阅react-redux文档中的故障排除部分。 如果您将Routes.jsx导出更改为: export default connect(() => ({}), () => ({}), null, { pure: false })(Routes); 它会工作。 这是因为connect()默认实现了shouldComponentUpdate,假设你的组件在给定相同的道具和状态的情况下会产生相同的结果。 路线变化,但道具不会让视图不更新。 你可以用withRouter hoc做到这withRouter 。 ... -
npm install --save react-router-redux@next 使用上述命令,您可能已经安装了react-router-redux 5的alpha版本,并且正在使用react-router v4。 正如他们在https://github.com/reactjs/react-router-redux自述文件中提到的那样, react-router-redux版本5目前正在其他地方积极开发。 这个回购是用于react-router-redux 4.x,它只与react-router 2.x ...
-
结果我需要应用routerMiddleware Turns out I need to apply the routerMiddleware as well
-
对于那些遇到相同问题和疑问的人:我发现了路由器已经提供的解决方案。 每个Route都有一个onEnter和onLeave属性。 这基本上是在呈现路径之前挂钩的Route的回调函数。 的OnEnter
store.dispatch(myComponentsEnterAction())} /> 休假 相关文章
更多- 《数据结构(C++版)(第2版)》扫描版[PDF]
- 《新版 Visual C++全能速查宝典》扫描版[PDF]
- 谁给推荐一个C++的JSON库
- 《C/C++图像处理编程》扫描版[PDF]
- 《C++程序设计语言 特别版 十周年纪念版》(The C++ Programming Language Special Edition)扫描版[PDF]
- C++ Hadoop实战备忘
- 《轻松学C++编程》扫描版[PDF]
- java server怎样和c++ client实现SSL通信??
- Hadoop下的Pipes(用C++进行Hadoop程序开发)
- 《iPhone开发教程:Linux/Unix下面向对象的C++软件开发视频教程》完整版
最新问答
更多- 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
- 如何通过引用返回对象?(How is returning an object by reference possible?)
- 矩阵如何存储在内存中?(How are matrices stored in memory?)
- 每个请求的Java新会话?(Java New Session For Each Request?)
- css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
- 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
- xcode语法颜色编码解释?(xcode syntax color coding explained?)
- 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
- 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
- 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
- 西安哪有PLC可控制编程的培训
- 在Entity Framework中选择基类(Select base class in Entity Framework)
- 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
- 电脑二级VF有什么用
- Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
- 金华英语角.
- 手机软件如何制作
- 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
- 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
- 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
- Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
- 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
- python的访问器方法有哪些
- DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
- 在Ruby中对组合进行排序(Sorting a combination in Ruby)
- 网站开发的流程?
- 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
- 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
- 透明度错误IE11(Transparency bug IE11)
- linux的基本操作命令。。。